什么是前面的正则表达式,它断言输入中至少有n,但不超过m。
为了给出一个简单的具体例子,假设我想断言输入中有5-8位数,并且输入由单词字符和空格(即[ \w]*)组成。然后:
this line 123 does not match
this line 123 foo 456 matches
this line 123 % 456 does not match
this line 123 foo 456 bar 789 does not match我已经尝试过各种{5,8}的组合,以展望未来:
^(?=(.*\d){5,8})[ \w]*$但是8的上限并没有应用于上面的第4行匹配(例如在帝王上)。
发布于 2013-01-11 19:55:14
我终于找到了办法。您必须使用两个外观头-一个用于下限,另一个用于上界:
^(?=(.*\d){5,8})(?!(.*\d){9,})[\w ]+$发布于 2013-01-11 14:08:40
^从字符串的开头开始,匹配0或更多的非数字,然后是数字{5 to 8 times},然后才是非数字,直到字符串$的末尾。
^([^\d]*\d){5,8}[^\d]*$https://stackoverflow.com/questions/14279723
复制相似问题