我试图编写一个正则表达式来匹配 10 或 12 位数字组合。
1234567890 - 真
123456789012 - 真
12345678901 - 假
123456- 假
1234567890123- 假
仅匹配 10 位或 12 位数字。我试过这个:
"^[0-9]{10}|[0-9]{12}$"
你很接近!
这是您正在寻找的正则表达式:^(d{10}|d{12})$
.它检查数字(带d
(。其余的或多或少是你的代码,括号除外。它捕获每个组。如果你想在没有它的情况下工作,你可以失去它们!
在这里查看它的实际效果
另一种方法,你可以这样做。
^d{10}(d{2})?$
您的正则表达式要么匹配字符串开头的 10 位数字(之后允许使用任何字符(,要么匹配字符串末尾的 12 位数字。使您的正则表达式工作的一种选择是:
"^[0-9]{10}$|^[0-9]{12}$"
尽管最好对模式使用原始字符串:
r'^[0-9]{10}$|^[0-9]{12}$'