正则表达式匹配m a,然后是m>n>0的n b

2024-09-30 06:31:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如何匹配表单的字符串

"a"*m + "b"*n

约束为m > n > 0

示例匹配:

aab
aaabb
aaaaaaaaaaaaaaaabbb

不匹配示例(违反m>;n约束):

abb
aabb
aaaabbbb

我可以通过使用recursive subpattern在perl中实现这一点。但在Python中,该功能不起作用:

>>> re.match("^a+(a(?1)?b)$", "aaabb")
error: unknown extension ?1 at position 6

在stdlib Pythonre模块中是否有任何方法可以做到这一点,或者是否有其他不需要外部PCRE库的模式


Tags: 字符串gt功能re表单示例perlrecursive
1条回答
网友
1楼 · 发布于 2024-09-30 06:31:16

一个选项可能是在开始时匹配1个或多个a,以匹配更多a而不是b,并使用重复组1+多次匹配至少一个b以匹配a>;b规则

^a+(?:a(?=a*(\1?b)))+\1$

Regex demo

相关问题 更多 >

    热门问题