java – 使用正则表达式重新格式化代码
发布时间:2020-12-14 06:01:53 所属栏目:Java 来源:网络整理
导读:我们在几个类中有一个项目的ArrayList,每次我想在列表中插入一个新项目时都会给我带来麻烦.我按照我的方式设计课程是一个错误,但现在改变设计会比它的价值更令人头疼(官僚瀑布模型.)我应该预期格式更改客户为我们提供瀑布的文件该死的. 我想在python中编写一
我们在几个类中有一个项目的ArrayList,每次我想在列表中插入一个新项目时都会给我带来麻烦.我按照我的方式设计课程是一个错误,但现在改变设计会比它的价值更令人头疼(官僚瀑布模型.)我应该预期格式更改客户为我们提供瀑布的文件该死的.
我想在python中编写一个简单的脚本进入一个类,将该项添加到列表中,然后增加以下项的所有检索.这听起来不太清楚: 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 GetBob() { return m_ParsedValue.get( m_Tags.get(2) ); } public String GetJim() { return m_ParsedValue.get( m_Tags.get(3) ); } } 你看我是否要在“Jane”和“Bob”之间添加一个值然后我必须在Get *函数中增加整数.我只想在Python中编写一个简单的脚本来完成我的工作.有人非常尊重建议的正则表达式. 编辑: 是的,LinkedHashMap.如此简单,如此简单,所以现在不在设计规范中.我讨厌瀑布.讨厌它.整个过程是一个“小”和“简单”的部分,“不应该花费太多时间来设计”.我犯了错误.它现在已经陷入困境了. 解决方法
您希望正则表达式与编译器在令牌之间的空格方面一样灵活.这样做并模仿空白使用会使模式非常混乱.下面的代码(抱歉: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) ); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |