我如何准确匹配11位数字(澳大利亚ABN),其中任何数字对可能会或可能不会由任何单个非字母数字字符(例如连字符,句点或任何字符)分隔空白包括新行)?
我尝试(\d\W*?){11}
,但这匹配了多个“分隔符”。
正则表达式应匹配所有这些......
1 1 1 1 1 1 1 1 1 1 1
11111111111
1-1111111111
1.1.1.1.1.1.1.1.1.1.1
但没有这些
1 1 1 1 1 1 1 1 1 1 1
1--1111111111
答案 0 :(得分:1)
你的正则表达式允许任意数量的非单词字符(通过*
),并且最后允许非单词字符(最后一组可能有它们)。
您想要10组数字后跟可选的非数字,后跟数字:
^(\d\D?){10}\d$
请参阅demo,其中会传递您的示例。
如果要限制分隔符可能是什么,例如只有点,空格或破折号,请为分隔符使用字符类:
^(\d[.\s-]?){10}\d$
请注意\s
(空格)包含换行符。
答案 1 :(得分:0)