java代码用正则表达式_java – 使用正则表达式重新格式化代码

您希望正则表达式与编译器在令牌之间的空格方面一样灵活.这样做并模仿空白使用会使模式非常混乱.下面的代码(抱歉:Perl,而不是Python)就地编辑源文件.

#! /usr/bin/perl -i.bak

use warnings;

use strict;

my $template =

'^( public

String

Get)(\w+)( \( \) { return

m_ParsedValue . get \( m_Tags . get \( )(\d+)( \) \) ; } )$';

$template =~ s/ +/\\s*/g;

$template =~ s/(\r?\n)+/\\s+/g;

my $getter = qr/$template/x;

die "Usage: $0 after new-name source ..\n" unless @ARGV >= 3;

my $after = shift;

my $add = shift;

my $index;

while (<>) {

unless (/$getter/) {

print;

next;

}

my($abc,$name,$lmno,$i,$xyz) = ($1,$2,$3,$4,$5);

if (defined $index) {

print join "" => $abc,++$index,$xyz;

}

else {

if ($name eq $after) {

$index = $i;

print; print join "" => $abc,$add,$xyz;

}

else { print; }

}

}

例如,

$./add-after Jane Foo code.java

$cat code.java

Foo extends Bar{

public Foo(){

m_Tags.add("Jane");

m_Tags.add("Bob");

m_Tags.add("Jim");

}

public String GetJane() { return m_ParsedValue.get( m_Tags.get(1) ); }

public String GetFoo() { return m_ParsedValue.get( m_Tags.get(2) ); }

public String GetBob() { return m_ParsedValue.get( m_Tags.get(3) ); }

public String GetJim() { return m_ParsedValue.get( m_Tags.get(4) ); }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值