怎么了?带捕获组问题的正则表达式量词
我想获得一些正则表达式的工作,但我面临一些“怪异”(?)行为。
我需要验证以下正则表达式:
- 只有数字(没有空格的话)
- 开始与10或11
- 必须是12个字符
工作后在这一段时间我坚持这一点:
^(10|11)[0-9]{10}$
它似乎正在按照要求工作,但我并不满意,因为它乍一看是误导性的。必须是最多12个字符,但它会验证最多10个字符和'开头'字符。
任何人都有更好的解决方案或谨慎解释为什么会发生这种情况? 。
在此先感谢(:
怎么了?带捕获组问题的正则表达式量词
我想获得一些正则表达式的工作,但我面临一些“怪异”(?)行为。
我需要验证以下正则表达式:
工作后在这一段时间我坚持这一点:
^(10|11)[0-9]{10}$
它似乎正在按照要求工作,但我并不满意,因为它乍一看是误导性的。必须是最多12个字符,但它会验证最多10个字符和'开头'字符。
任何人都有更好的解决方案或谨慎解释为什么会发生这种情况? 。
在此先感谢(:
其效果不理想的工作
{10}
意味着你的情况正好是10位
您可以使用{0,10}
这Matches between 0 and 10 times, as many times as possible, giving back as needed
至于误导性的一部分 - 它是主观的。 ,如果号码必须以10或11开头,所以它必须是2位数字,你可以允许不超过10位数字
2个12个字符之间可以有我不明白有什么问题,如果它的工作原理是期望。 ..你不喜欢正则表达式字符串的外观..? – Oneiros
这不是我不喜欢它,但有一个10个字符长的验证,它实际上验证12,在维护代码时是误导。 – Ambrosi
如果您有_eye_问题,请使用这个'^(?=(10 | 11))[0-9] {12} $' – sln