匹配所有行直到正则表达式

时间:2015-05-20 14:16:12

标签: regex perl

我正在使用Perl编写脚本并对正则表达式提出疑问。 我需要匹配的所有行,直到匹配正则表达式...

例如:

 (".$variable.".EXAMPLE\\d+)

这是捕获行中表达式的正则表达式,我想对其进行更改,因此它将在表达式之前使用整行。

我希望我足够清楚:)

谢谢!

2 个答案:

答案 0 :(得分:1)

我会使用capture groups

/(.*?)(EXAMPLE\d+)/

在匹配操作之后,感兴趣的单词之前的行在捕获组1($1)中可用。像这样:

$string = "foo bar EXAMPLE1";
$string =~ /(.*?)(EXAMPLE\d+)/;
print($1); # Prints "foo bar "

答案 1 :(得分:0)

只需在开头添加.*? ..这意味着..以非贪婪的方式匹配所有(以便它不会吃掉你的后续正则表达式)

这样的事情:

(.*?EXAMPLE\\d+)