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



我试图编写一个正则表达式来匹配 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}$'

最新更新