首页 > 解决方案 > 如果存在正则表达式,则捕获特定行

问题描述

如果我的文件可能是:

numbers:
32
45
999

56

或者

numbers:
23
45

56

999一个常数,但其他数字和行数会发生变化。

有没有捕捉的方法:

到目前为止,我已经尝试过:

也有可能我过于复杂了,并且有一些简单的解决方案。

非常感谢!

标签: regex

解决方案


这是一个不使用前瞻的正则表达式:

^(numbers:(?:\n.+)*?)(?:\n(?:999)?$)

正则表达式演示

正则表达式详细信息:

  • ^: 起始线
  • (: 开始捕获组 #1
    • numbers:: 匹配numbers:文本
    • (?:\n.+)*?: 匹配一行中后跟 1+ 个字符的换行符。重复此 0 次或更多次(非贪婪)
  • ): 结束捕获组 #1
  • (?:\n(?:999)?$): 必须后跟换行符和999/或空行

推荐阅读