[請益] 請教terminal 餵正規表示法給perl問題

作者: jacky1989   2021-04-10 02:11:08
大家好
我以terminal餵資料給perl遇到一些問題
fileA
Aao.a1.b2.c3.d4:a
Aao.a5.b10.c6.d2:b
Abo.a6.b15.c2.d9:b
Aao.a6.b4.c2.d7:b
Aao.a6.b4.c5.d7:b
我要從fileA找到特定的字串
我這樣寫
tmp.pl
open fid_rd,”<fileA”;
while(<fid_rd>){
if($_ =~ /ARGV[0]/){
print $_;
}
}
close fid_rd;
>./tmp.pl A[ao\bo]+.a[1\|6]+.b[4\15|]+.c[2\|5]+.d[7\|9]+:b
理論上應該要出現3,4,5行,但是有可能出現第一行或第二行不符合規則的資料
所以想跟大家請教,我要怎麼改才對呢?
先謝謝大家了
因為公司無法把程式碼寄出來,所以我寫簡易版的,如果需要更多資訊,請再跟我說,感謝
作者: herculus6502 (金麟豈是池中物)   2021-04-10 14:27:00
regular expression寫法有問題,你要的可能是(…)而不是[...],建議寫死在程式碼中先測試一下
作者: flu (Crazy Rhythm)   2021-04-10 16:36:00
\b 在[...]裡面代表 backspace 字符
作者: herculus6502 (金麟豈是池中物)   2021-04-11 06:31:00
參 www.regular-expressions.info/charclass.html

Links booklink

Contact Us: admin [ a t ] ucptt.com