import re
theString = '2sheepsheep'
rx = re.compile(r'^(\d+)(sheep)*$')
m = rx.match(theString)
rx = re.compile(r'^(\d+)(sheep){' + m.group(1) + '}$')
# If you count in pairs, you can just change that to:
rx = re.compile(r'^(\d+)(sheepsheep){' + m.group(1) + '}$')
Python的正则表达式引擎不支持将匹配的子表达式解析为重复计数,我认为也不应该使用RegExp来完成这项工作。在
最好的办法是结合RegExp匹配和代码检查:
这不是您应该单独使用正则表达式来完成的;您应该首先匹配字符串开头的数字,然后动态生成一个正则表达式来匹配其余部分。有关代码示例,请参阅其他答案。在
我相信使用Perl regexes(搜索
(?PARNO)
)是可行的。这可能就是我不喜欢Perl的原因。在可以使用正则表达式提取数字,然后在重复运算符上使用该数字编译第二个正则表达式:
相关问题 更多 >
编程相关推荐