我试着写一个正则表达式来匹配10或12位数的组合。像:
1234567890 - 真实
123456789012 - 真实
12345678901 - 错误
123456-错误
1234567890123-错误
仅匹配10或12位数字。 我试过这个:
"^[0-9]{10}|[0-9]{12}$"
答案 0 :(得分:10)
你很亲密!
这是您正在寻找的正则表达式:^(\d{10}|\d{12})$
。它检查数字(\d
)。其余部分或多或少是您的代码,但括号除外。它捕获每个组。如果你想在没有它的情况下工作,你可以放松它们!
答案 1 :(得分:1)
你的正则表达式在一个字符串的开头匹配10个数字(之后允许更多的字符),或者字符串末尾的12个数字。使正则表达式工作的一个选项是:
"^[0-9]{10}$|^[0-9]{12}$"
虽然最好使用原始字符串作为模式:
r'^[0-9]{10}$|^[0-9]{12}$'
答案 2 :(得分:0)
还有另一种方法,您可以像这样进行操作。
^\d{10}(\d{2})?$