gpt4 book ai didi

python - 使用带有反向引用匹配的 python 正则表达式

转载 作者:行者123 更新时间:2023-12-01 02:23:20 31 4
gpt4 key购买 nike

我对带有反向引用的正则表达式有疑问。

我需要匹配字符串,我尝试这个正则表达式 (\w)\1{1,}捕获字符串的重复值,但此正则表达式仅捕获连续的重复字符串;我一直在改进我的正则表达式以捕获所有重复的值,下面是一些示例:

import re

str = 'capitals'

re.search(r'(\w)\1{1,}', str)

Output None

import re

str = 'butterfly'

re.search(r'(\w)\1{1,}', str)

<_sre.SRE_Match object; span=(2, 4), match='tt'>

最佳答案

我会使用r'(\w).*\1,这样它就允许任何重复的字符,即使中间有特殊字符或空格。

但是,这对于重复字符与组内容重叠的字符串不起作用,例如字符串 abcdabcd,其中它仅识别第一组,忽略第一组中包含的其他重复字符 (b ,c,d)

查看演示:https://regex101.com/r/m5UfAe/1

因此,另一种选择(根据您的需要)是对分析的字符串进行排序:

import re
str = 'abcdabcde'
re.findall(r'(\w).*\1', ''.join(sorted(str)))

返回包含重复字符的数组['a','b','c','d']

关于python - 使用带有反向引用匹配的 python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719562/

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