格式化html源码正则,使用正则表达式重新格式化代码

您希望您的正则表达式与编译器针对标记之间的空白一样灵活。这样做和模仿空白使用会使模式非常混乱。下面的代码(对不起: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, $name, $lmno, ++$index, $xyz;

}

else {

if ($name eq $after) {

$index = $i;

print; print join "" => $abc, $add, $lmno, ++$index, $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、付费专栏及课程。

余额充值