我正试图编写一个具有以下要求的Regex:
- 除了字母和数字之外,不能有任何连续字符
示例:我是第一!我感觉好极了!(好的(,我有点。{}。悲伤(不好(
- 除了字母和数字之外,字符不能超过4个
示例:a.a,aaa(OK(,a.a,a[]a/(NOT OK(
到目前为止,我已经写了这个Regex,但它似乎不能正常工作。
/^(?!.*?[!"#$%&'()*+,-./:;<=>?@[]^_`{|}~]{2})[A-Za-z0-9!"#$%&'()*+,-./:;<=>?@[]^_`{|}~].*$/
你能提出任何解决方案吗?谢谢
您可以使用
/^(?!.*[!-/:-@[-`{-~]{2})[A-Za-z0-9 ]*(?:[!-/:-@[-`{-~][A-Za-z0-9 ]*){0,4}$/
请参阅regex演示。
详细信息
^
-字符串的开头(?!.*[!-/:-@[-`{-~]{2})
-除了换行字符之外,任何零个或多个字符后面都没有两个连续的ASCII标点符号,尽可能多[A-Za-z0-9 ]*
-零个或多个字母、数字或空格(?:[!-/:-@[-`{-~][A-Za-z0-9 ]*){0,4}
-零到四次[!-/:-@[-`{-~]
-单个ASCII标点符号字符[A-Za-z0-9 ]*
-零个或多个字母、数字或空格
$
—字符串结束