我需要一个正则表达式来匹配以下内容:
在每个字符串的6个字符后面有一个
';'
例子:
aaaaaa;z5z5z5;zdzzzt; (有效)
aaadzdaaa;z5z5dzdzz5;zdzdzd; (无效)
我试过了:
(([A-Za-z0-9]{6};$))
Run Code Online (Sandbox Code Playgroud)
但它只根据最后的顺序进行验证.
你应该用
^(?:[A-Za-z0-9]{6};)*$
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
如果必须与一个分号的至少一个序列,替换*与+量词:
^(?:[A-Za-z0-9]{6};)+$
Run Code Online (Sandbox Code Playgroud)
实际上你需要^字符串的起始锚和字符串$结束锚,你不应该把$锚放在重复的组中,因为只有一个字符串的一端.
这是正则表达式分解:
^ - 字符串的开头(?:[A-Za-z0-9]{6};)* - 0或更多序列...
[A-Za-z0-9]{6} - 正好6个ASCII字母或数字; - 分号$ - 字符串结尾.