每个x字符后的正则表达式模式

Kev*_*ian 2 regex

我需要一个正则表达式来匹配以下内容:

在每个字符串的6个字符后面有一个 ';'

例子:

  • aaaaaa;z5z5z5;zdzzzt; (有效)

  • aaadzdaaa;z5z5dzdzz5;zdzdzd; (无效)

我试过了:

(([A-Za-z0-9]{6};$))
Run Code Online (Sandbox Code Playgroud)

但它只根据最后的顺序进行验证.

Wik*_*żew 5

你应该用

^(?:[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字母或数字
    • ; - 分号
  • $ - 字符串结尾.