Perl获取2个模式之间的字符串

时间:2014-05-08 10:34:13

标签: regex perl

我有一个多次具有此模式的日志文件:

Toggle('AFDACAAAAAIAAAA')" class="Failure">ABC</a> 

我有这个代码行来获取具有此模式的整行 但我只对ABC字符串感兴趣(可能是任何其他字符串)

print "$line" if $line =~ /Toggle\('[A-Z]*'\)" class="Failure">.*<\/a>/g;

我可以用正则表达式吗?

2 个答案:

答案 0 :(得分:2)

如果您不想使用捕获组,可以使用前瞻和\K锚点:

print $& if $line =~ /Toggle\('[A-Z]*'\)" class="Failure">\K.*(?=<\/a>)/;

\K基本上会抛弃之前匹配的所有内容 - 但它仍然需要匹配。

答案 1 :(得分:1)

捕捉你想要的位。它将在$1。 (哦,你不需要/g。)

print $1 if $line =~ /Toggle\('[A-Z]*'\)" class="Failure">(.*)<\/a>/;