无法找出正则表达式问题。
我们正在寻找 2 个数字,然后是连字符或空格,然后是 6 个数字。只能是 6 个数字,因此 6 个数字后必须有一个字母字符或一些标点符号或空格,或者 6 个数字必须位于字符串的末尾。
字符串中的其他位置允许使用其他数字,只要它们是分开的即可。
所以,这些应该匹配:
foo 12-123456 bar
12-123456 bar
foo 12-123456
foo12-123456bar
12-123456bar
foo12-123456
12-123456bar 99
foo12-123456 99
这些不应该匹配:
123-12345 bar
foo 12-1234567
123-12345bar
foo12-1234567
这是我们使用的:
\D\d{2}[-|/\ ]\d{6}\D
在Expresso中这很好。
但是在我们的 .net 应用程序中实际运行时,这种模式无法匹配 6 个数字位于字符串末尾的示例。
试过这个:
\D\d{2}[-|/\ ]\d{6}[\D|$]
它仍然不匹配
foo 12-123456