gpt4 book ai didi

python - 有没有办法在进行正则表达式匹配时使用出现次数的范围?

转载 作者:行者123 更新时间:2023-11-28 18:15:29 25 4
gpt4 key购买 nike

给定一个字符串 aaabbb 是否有一种方法可以编写正则表达式来查找子字符串的数量,例如 ab、aabb、aaabbb。

我是通过构造正则表达式 [a]{m}[b]{m} 并迭代一系列值来实现的。但我想知道是否有办法一次性完成。

最佳答案

如评论中所述,^(?:a(?=a*(\1?+b)))+\1$ 允许使用广泛的正则表达式功能匹配此类平衡构造.

Demo

完整解释 here .

也就是说,如果你想列出所有匹配平衡结构的重叠子串,你可以使用 (?=((?:a(?=a*(\2?+b)))+\2 )):

(?=                         # Using a lookahead allows to restart matching even if a match has already been found, as a lookaround doesn't "consume" its content.
( # Using a capturing group allows to retrieve the match.
(?:a(?=a*(\2?+b)))+\2) # As an outer capturing group has been defined, thus numbered 1, we rewrite the inner part using the proper group 2.
)
)

Demo

关于python - 有没有办法在进行正则表达式匹配时使用出现次数的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48657526/

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