如何捕获正则表达式匹配的几行?

如何捕获正则表达式匹配的几行?

我正在寻找一个正则表达式来匹配匹配行上的几行。例如:

ABCDEFGHADEFGH
ABCDEFGHADEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
ABCDEFGHABCDEFGHABCDEFGH
XXXXXXXX

我想捕获 XXXXXXXX 上面的两行。

任何帮助都将不胜感激。注意:使用 Python 库 re

答案1

以下 RegEx 测试该XXXXXXXX行之前的可变数量的行并在第一个捕获组中返回它们。

((.*(\n|\r|\r\n)){2})XXXXXXXX

  1. (.*(\n|\r|\r\n))测试以换行符结尾的字符串。(\n适用于 Unix、\r旧 Mac OS、\r\n\Windows)
  2. {2}量化这个2次。
  3. ()确保所有行都位于一个捕获组中。
  4. XXXXXXXX是文本必须以其结尾的字符串。

现在在 Python 中,您可以使用它p.match(regex)[0]来返回第一个捕获组。

答案2

添加到 erikgaal 的答案,在 xxxxxx 之前使用额外的 .* 来匹配任何制表符/空格。

((.*\n){2}).*xxxxxxx

相关内容