whe*_*ies 6 python java regex perl
我们有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) ); }
}
Run Code Online (Sandbox Code Playgroud)
你看我是否要在"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, $name, $lmno, ++$index, $xyz;
}
else {
if ($name eq $after) {
$index = $i;
print; print join "" => $abc, $add, $lmno, ++$index, $xyz;
}
else { print; }
}
}
Run Code Online (Sandbox Code Playgroud)
例如,
$ ./add-after Jane Foo code.java
$猫代码.java
Foo 扩展了 Bar{
公共 Foo(){
m_Tags.add("简");
m_Tags.add("鲍勃");
m_Tags.add("吉姆");
}
公共字符串 GetJane() { return m_ParsedValue.get( m_Tags.get(1) ); }
公共字符串 GetFoo() { 返回 m_ParsedValue.get( m_Tags.get(2) ); }
公共字符串 GetBob() { return m_ParsedValue.get( m_Tags.get(3) ); }
公共字符串 GetJim() { return m_ParsedValue.get( m_Tags.get(4) ); }
}
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |