用于拆分和匹配的正则表达式命令

时间:2016-09-29 12:43:47

标签: regex

我想检查一些分隔符分割的所有子字符串是否匹配模式 这是我的模式[S][0-9]{7}[A-Z]{1,2}但它是一个元素的模式。有时会有人将S1234567A, S0X00000B放在输入框中,我想检查所有元素是否与模式匹配。在这种情况下,我的正则表达式会说它没关系,因为他找到了匹配的字符串 我无法访问源代码,因此我可以拆分它并检查每个元素 有没有办法在正则表达式中执行此操作?

1 个答案:

答案 0 :(得分:2)

使用额外的* - 量化组,使用^$将整个表达式锚定在字符串的开头和结尾处:

^S[0-9]{7}[A-Z]{1,2}(?:,\s*S[0-9]{7}[A-Z]{1,2})*$
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

请参阅regex demo

详细

  • ^ - 字符串开头
  • S[0-9]{7}[A-Z]{1,2} - S,7位数字,两个或一个大写ASCII字母
  • (?: - *量化组的开头:
    • , - 逗号(如果逗号前可以有空格,请先添加\s*
    • \s* - 0+空白符号
    • S[0-9]{7}[A-Z]{1,2} - 见上文
  • )* - 组的结尾,*量词使其匹配零次或多次
  • $ - 字符串结束。