首先,这有点被问过.但是我无法修改它以符合我的要求.
简而言之:我想要一个与表达式匹配的正则表达式,当且仅当它只包含数字时,表达式中某处有5个(或更多)连续数字.
我理解的逻辑
^(?=\d{5}$)1*2*3*4*5*6*7*8*9*0*$
Run Code Online (Sandbox Code Playgroud)
但是,这会将表达式限制为5位数.我希望能够在表达式之前和之后成为数字.所以1111345671111应该匹配,而不11111应该.
我认为这可行:
^[0-9]*(?=\d{5}0*1*2*3*4*5*6*7*8*9*)[0-9]*$
Run Code Online (Sandbox Code Playgroud)
我解释为:
^$:整个表达式必须只包含这两个符号之间的内容
[0-9]*:0- 9,0或更多次之间的任何数字后跟:
(?=\d{5}0*1*2*3*4*5*6*7*8*9*):找到至少5个增加数字的部分,后跟:
[0-9]*:0- 9,0或更多次之间的任何数字.
但是这个正则表达式是不正确的,例如11111匹配.如何使用正则表达式解决此问题?所以要匹配的表达式示例:
0000145900012345这应该不匹配:
abc123459871234444regex ×1