匹配正则表达式中的相似字符串,但不是所有出现 [关闭]
Posted
技术标签:
【中文标题】匹配正则表达式中的相似字符串,但不是所有出现 [关闭]【英文标题】:Match similar string in regex, but not all occurences [closed] 【发布时间】:2022-01-12 01:15:08 【问题描述】:我想知道是否可以匹配两条或多条相似行中的一条。
要匹配的字符串:
Its a string
Its a string
Its a string
异常结果:
Its a string
我尝试的所有内容都选择了每一行,因为它们绝对相似。
是否可以始终保持一条相似的行不匹配?
【问题讨论】:
您能否分享一个您尝试过的最小可重现示例,并解释为什么它不能满足您的需求***.com/help/minimal-reproducible-example 【参考方案1】:我不能 100% 确定这对您是否有效,但我认为您正在尝试这样做。
import re
p = re.compile(r'(^.+$)((.|\n|r)*)^\1$', re.MULTILINE)
result = p.search(string)
repeated_line = result.groups()[0].strip()
您需要指定 re.MULTILINE 以便它可以捕获 ^$ 字符。
下面是正则表达式的快速总结:
(^.+$) # Matches a full line and captures it into '\1'
((.|\n|\r)*) # Matches any number of characters/newlines
^\1$ # Matches the first capturing group ensuring that the second occurrence fills a line and has it's own line.
可能有更好的方法可以做到这一点,但这是我想到的第一个专门使用正则表达式的解决方案。
【讨论】:
以上是关于匹配正则表达式中的相似字符串,但不是所有出现 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章