这最终会成为一个更大的表达式的一部分,但我已经将它简化为一个更简单的形式(即,这里可能有40个字符而不是19个字符)。鉴于以下输入:
;123?T
我与这个正则表达式成功匹配:
^(?:;(\d{0,19})\?.){1,40}$
但是,我没有得到这个正则表达式的匹配:
^(?:;(\d{0,19})\?.){3,40}$
我唯一要改变的是最小长度,输入应满足这两个长度。为什么第一个找到匹配而第二个找不到?也许我只是不理解这个量词,但我认为它只是{MIN,MAX}。
此外,我已在以下两位在线测试人员中对此进行了测试:
答案 0 :(得分:8)
使用表达式^(?:;(\d{0,19})\?.)
的第一部分,您将匹配所有;123?T
。
对于表达式{1,40}
的下一部分,您要说的是匹配上述1到40次。请注意,如果您尝试连续3次匹配;123?T
,这显然不起作用,当您说{3,40}
时就是这种情况。