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