正则表达式匹配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
)。其余的是或多或少的代码,除了括号。它捕获每个组。如果你想在没有它的情况下工作,你可以放弃这些!
答
你的正则表达式或者在一个字符串(与后多个允许任何字符)在字符串的末尾,或12位的开头相匹配10位数字。一个选项,以使您的正则表达式的工作是:
"^[0-9]{10}$|^[0-9]{12}$"
虽然它是更好地使用原始字符串的模式:
r'^[0-9]{10}$|^[0-9]{12}$'
只需添加到我的回答:[regex101.com(HTTP:// regex101.com)是学习正则表达式的好方法。每次你需要它时,只需拨动并注意右下角的图例。我曾经吸过正则表达式,但那个网站只是通过反复试验教会了我很多! –