【问题标题】:Extract lines between two similar strings提取两个相似字符串之间的行
【发布时间】:2012-10-05 13:41:41
【问题描述】:

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

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

希望有一些想法。

【问题讨论】:

    标签: regex string perl match


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 2019-10-10
      • 2020-10-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      相关资源
      最近更新 更多