正则表达式 python 多行

Posted

技术标签:

【中文标题】正则表达式 python 多行【英文标题】:regex python multiline 【发布时间】:2019-03-14 00:37:45 【问题描述】:

我如何在文本中搜索覆盖多行并具有相互关联的固定位置的模式,例如,由 3 个 x 字母组成的模式直接在彼此下方,我想在该行的任何位置找到它们,例如,不仅仅是一开始。 预先感谢您的回答!

【问题讨论】:

问题是我已经建立了一个能够找到这种模式的正则表达式,例如 re.compile(r"(.*)x(.*)\n(.*) x(.*)\n(.*)x(.*))。现在可以在彼此下方的 3 行中找到 x 的 3 个字母,但是该行中的水平 x 位置并不明确相同(x´es 是没有明确地在彼此之下),那么我怎样才能建立这个边界条件呢?非常感谢! 你应该包括你的Input和你的Desired Output,这样回答的人就不必根据句子猜测 【参考方案1】:

我相信您要问的问题是“查找在一系列行中出现在相同偏移处的模式。”

我不认为这描述了一种常规语言,因此您需要利用 Python 的扩展正则表达式功能才能有机会获得基于正则表达式的解决方案。但我不相信 Python 支持足够的扩展功能来完成这项任务 [1]。

如果可以接受它们出现在特定的偏移量(而不是“任何偏移量,只要偏移量是一致的”),那么这样的事情应该可以工作:

/^.OFFSETPATTERN.*\n^.OFFSETPATTERN.*\n^.OFFSETPATTERN/,使用MULTILINE 标志,以便^ 匹配一系列行的开头,而不是整个文本的开头。

[1] 特别是,您可以使用反向引用来捕获一行上所需模式之前的文本,但我认为您不能查询捕获内容“内联”的 长度 .您可以在下一行再次搜索相同的前导文本,但这听起来不像您想要的。

【讨论】:

以上是关于正则表达式 python 多行的主要内容,如果未能解决你的问题,请参考以下文章

python正则表达式匹配多行

正则表达式 python 多行

Python正则表达式多行匹配问题

用于匹配单行和多行注释的 Python 正则表达式。

Python正则表达式,多行匹配模式..为啥这不起作用?

python 正则表达式,多行匹配,但仍想获取行号