2

我想提取一个给定和一个或多或少随机字符串之间的行。该文件如下所示:

\\\\\
\\\\\     start 
\\\\\   
lines
to 
extract
\\\\\
\\\\\     <any string> (must not be start but could be sta*) 
\\\\\

直到现在,在没有明确知道第二个字符串的情况下,我无法在这两者之间找到界限。通过使用 \w 或 [a-zA-Z] 将第二个字符定义为任何可能的字符,perl 似乎两次匹配第一行,因此只打印“ ----- start ”作为结果。

到目前为止,它看起来像这样:

open(FILE,'<','file.txt') or die "Could not open: $!";
while(<FILE>){
  print $_ if (/^\\{5}     start$/ .. /^\\{5}     [a-zA-Z]/);
}

输出是:

\\\\\     start

希望有一些想法。

4

1 回答 1

2

使用...而不是..防止匹配两个表达式。

于 2012-10-05T14:01:00.713 回答