Perl代码有没有更好的方法来重新搜索一个字符串多次?
while(<file_handle>){
if(/if\s+\((\w+)\)/){
$op = 0x10;
print "This is if state!", $1;
}elsif(/(\d+)/){
push(@number, $1);
print "This is pure number", $1;
}
}
这很漂亮!但在蟒蛇:
for line in lines:
result = re.search('/if\s+\((\w+)\)/', line)
if result:
op = int("10", 16);
print "This is if state!" + result.group(1)
else:
result = re.search('/(\d+)/', line)
if result:
number.append($1)
print result.group(1)
有没有更好的方式来写在python这部分? 我知道在这种情况下,我们可以在1 if语句中使用[\ w | \ d] +。但有时我们必须使用几种不同的if语句。
添加一些输入文件例子:
move r1, r2;
if (en){
r3 = r5 * r6;
}
r10 = 0;
for (r7 = 0; r7<10; r7++){
r10 = r10 + r7;
}
你的目标是打印出字符或数字?你能举一个例子说明一个输入是什么样的,以及预期的输出结果? – idjaw
我添加一个例子。你的意思是不管文本是什么,搜索模式是什么,有一种方法可以使用1 if语句? – BBKing
'elsif'子句将永远不会被输入,因为'\ w'包含所有'\ d'。 – ikegami