提取两个相似字符串之间的行

时间:2012-10-05 13:41:41

标签: regex string perl match

我想提取一个给定的和一个或多或少的随机字符串之间的行。 该文件看起来像:

\\\\\
\\\\\     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

希望得到一些想法。

1 个答案:

答案 0 :(得分:2)

使用...代替..来阻止匹配两个表达式。