我想寫一個匹配##-##
(其中#對應於任何數字)形式的字符串的正則表達式,並注意第二對數字不能爲「00」。該表達式應該可以與re.search一起使用,並且應該捕獲匹配模式的第一個匹配項。我可以使這個(Python)正則表達式更快嗎?
下面是我得到了什麼(工作):
the_regex = re.compile("(\d\d-(?:0[123456789]|[123456789]\d))")
我不是野生的分支或長的字符組。任何人都可以提出更好的(更清晰的,或者更有效的)正則表達式嗎?
(是的,這是一個微型的優化,我已經從克努特聽取正確的警告。)
它應該匹配時,如果字符串包含類似:'123-123'? (您目前的表達式(以及迄今爲止的所有答案)不會強制執行邊界條件,並且將匹配:'123-123'內的'23-12'。) – ridgerunner
@ridgerunner好點,但在這種情況下,它匹配的字符串保證不會有這種情況。 – dcrosta