我想写一个匹配##-##
(其中#对应于任何数字)形式的字符串的正则表达式,并注意第二对数字不能为“00”。该表达式应该可以与re.search一起使用,并且应该捕获匹配模式的第一个匹配项。我可以使这个(Python)正则表达式更快吗?
下面是我得到了什么(工作):
the_regex = re.compile("(\d\d-(?:0[123456789]|[123456789]\d))")
我不是野生的分支或长的字符组。任何人都可以提出更好的(更清晰的,或者更有效的)正则表达式吗?
(是的,这是一个微型的优化,我已经从克努特听取正确的警告。)
它应该匹配时,如果字符串包含类似:'123-123'? (您目前的表达式(以及迄今为止的所有答案)不会强制执行边界条件,并且将匹配:'123-123'内的'23-12'。) – ridgerunner
@ridgerunner好点,但在这种情况下,它匹配的字符串保证不会有这种情况。 – dcrosta