MY Regex:
/^[s]*('[a-zA-Z0-9_:.-s\/()&><]+(,+s*[a-zA-Z0-9_:.-s\/()&><]+)*'[s,]*)*$/
我希望它验证::
'A','B,C','D','E,F','G','H'....... // like wise no specific pattern
在这里,"A"可以是一个单词或句子,上面提到的其他字母也是如此。
无效案例::
A','B' // Missing single quote
'A''B' // Missing comma
A',B' // Missing single quote
'A','B // Missing single quote
'A','B', // Extra comma
'A',,'B' // Double comma
,'A','B' // Comma at beginning
其中一些无效案例没有被我的REGEX捕获。我应该在正则表达式中更改什么?
我已经测试过了https://regex101.com/
您可以使用此正则表达式使问题中显示的所有字符串无效:
/^s*'[^']*'(?:,'[^']*')*s*$/gm
假设您的输入中没有单引号转义。
RegEx演示
RegEx详细信息
^
:启动s*
:匹配0个或多个空白'[^']*'
:匹配单引号字符串(?:,'[^']*')*
:匹配逗号后面的单引号字符串。此组的数学0或更多s*
:匹配0个或多个空白$
:结束
如果转义的单引号,即'
可以是输入的一部分,则可以使用:
/^s*'(?:[^'\]|\.)*'(?:,'(?:[^'\]|\.)*')*s*$/gm