如何将某个字符串上下的文本行匹配到另一个字符串 - RegEx

如何使用正则表达式(python 引擎)查找某个字符串,匹配它上面的几行以及它后面的所有文本,直到另一个指定的字符串?文本来自日志文件,几乎所有值都是动态的。我只找到了一个常量字符串,它位于我想要捕获的块的中间。例如:

这是我不想匹配的一行文本。

这是我想要匹配的一行文本。

这是我想要匹配的一行文本。

要匹配的字符串

我想要捕获的文本和数字行以及其他标记 abc123:/()&。

我想要捕获的文本和数字行以及其他标记 abc123:/()&。

我想要捕获的文本和数字行以及其他标记 abc123:/()&。

结束但不捕获的字符串

我不想要的文字

我不想要的文字

我可能还应该注意到,这些行中的大多数不仅可以包含文本,还可以包含数字和其他标点符号,我需要获取所有这些内容。如果有人能指出我正确的方向,我将非常感谢您的帮助。谢谢!


杨__羊羊
浏览 163回答 1
1回答

繁花不似锦

试试这个模式: (?=(.+\n){2}String to match)[\w\W]+(?=String to end on but NOT capture)说明:这展望与(?=(.+\n){2}String to match)装置,这些装置保证,那接踵而来的是2号线.+\n(在这里你需要指定你要多少行字符串之前匹配)和String to match。如果为真,则开始匹配 , 表示的每个字符[\w\W]+,直到位置后跟String to end but NOT capture,这是通过(?=String to end on but NOT capture)(再次 - 正向前瞻)实现的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python