gpt4 book ai didi

python 正则表达式 : match a char surrounded by exactly 2 chars

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:56 26 4
gpt4 key购买 nike

我需要一个 python 中的正则表达式来匹配被正好 2 个下划线包围的任何字符。意义,意义

__a__ 

将匹配“a”,但是

___a___ 

将不匹配。它需要支持重叠匹配,这样

__a__d___b___e__c__ 

将返回“ac”因为 a 被双下划线包围,但是 d,e 旁边有一个三重下划线,而 b 两边都有一个三重下划线。我现在拥有的

(?<=[_]{2})(.)(?=[_]{2})

它解决了重叠问题,但没有解决“恰好 2”问题在上面的例子中它返回“adbec”

最佳答案

尝试以下操作:

(?<=(?<!_)__)([^_])(?=__(?!_))

例子:

>>> regex = re.compile(r'(?<=(?<!_)__)([^_])(?=__(?!_))')
>>> regex.findall('__a__ ')
['a']
>>> regex.findall('___a___')
[]
>>> regex.findall('__a__d___b___e__c__')
['a', 'c']
>>> regex.findall('__a__c__')
['a', 'c']

你说你想要重叠匹配,但如果你不希望 c__a__c__ 中匹配,请使用以下内容(这是我的原始答案):

(?<!_)__([^_])__(?!_)

关于 python 正则表达式 : match a char surrounded by exactly 2 chars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10821585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com