2017-05-09 1410 views
-1

我試圖寫一個正則表達式來匹配10或12位數字組合。像:正則表達式匹配10或12位數字python

1234567890 - 真
123456789012 - 真
12345678901 - 假
123456-假

1234567890123-假

只有符合10或12位。 我試過這個:

"^[0-9]{10}|[0-9]{12}$" 

回答

6

你很近!

這是你正在尋找的正則表達式:^(\d{10}|\d{12})$。它檢查數字(與\d)。其餘的是或多或少的代碼,除了括號。它捕獲每個組。如果你想在沒有它的情況下工作,你可以放棄這些!

See it in action here

+0

只需添加到我的回答:[regex101.com(HTTP:// regex101.com)是學習正則表達式的好方法。每次你需要它時,只需撥動並注意右下角的圖例。我曾經吸過正則表達式,但那個網站只是通過反覆試驗教會了我很多! –

1

你的正則表達式或者在一個字符串(與後多個允許任何字符)在字符串的末尾,或12位的開頭相匹配10位數字。一個選項,以使您的正則表達式的工作是:

"^[0-9]{10}$|^[0-9]{12}$" 

雖然它是更好地使用原始字符串的模式:

r'^[0-9]{10}$|^[0-9]{12}$'