正则表达式 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 多行的主要内容,如果未能解决你的问题,请参考以下文章