正则表达式匹配10或12位数字python

问题描述:

我试图写一个正则表达式来匹配10或12位数字组合。像:正则表达式匹配10或12位数字python

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

1234567890123-假

只有符合10或12位。 我试过这个:

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

你很近!

这是你正在寻找的正则表达式:^(\d{10}|\d{12})$。它检查数字(与\d)。其余的是或多或少的代码,除了括号。它捕获每个组。如果你想在没有它的情况下工作,你可以放弃这些!

See it in action here

+0

只需添加到我的回答:[regex101.com(HTTP:// regex101.com)是学习正则表达式的好方法。每次你需要它时,只需拨动并注意右下角的图例。我曾经吸过正则表达式,但那个网站只是通过反复试验教会了我很多! –

你的正则表达式或者在一个字符串(与后多个允许任何字符)在字符串的末尾,或12位的开头相匹配10位数字。一个选项,以使您的正则表达式的工作是:

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

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

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