我想创建仅在任何字符串具有三个或更多字符且仅在字符串中包含+号的情况下匹配的regex表达式,然后在+号之后和之前必须至少包含三个字符,
我创建了一个正则表达式,它满足了我所有的要求,除了第一个+号之前必须至少三个字符,但匹配的字符较少
这是我当前的正则表达式: (\+[a-z0-9]{3}|[a-z0-9]{0,3})$
ab+abx
这个字符串不应该匹配,但是在我的正则表达式中匹配
例:
sss
sdfsgdf
4534534
dfs34543
sdafds+3232+sfdsafd
qwe+sdf
234+567
cvb+243
a
aa
a+
aa+
+aa
+a
a+a
aa+aa
aaa+a
您可以使用此正则表达式,
^[^+\n]{3,}(?:\+[^+\n]{3,})*$
说明:
^
-字符串开始[^+\n]{3,}
-这样可以确保它匹配除+
换行符以外的所有字符,\n
如果您要匹配的输入不包含任何换行符并{3,}
允许它至少匹配三个或更多字符,则可以将其删除
(?:\+[^+\n]{3,})*
-此部分还允许匹配一个+
字符,然后再将其与至少三个或更多字符分隔开,并且整个字符零次或多次以保持该+
字符的外观为可选
$
-输入结束编辑:更新解决方案,其中空格不参与计算+
最少需要三个字符的任一侧的字符数
您可以使用此正则表达式忽略对文本中的空格进行计数,
^(?:[^+\n ] *){3,}(?:\+ *(?:[^+\n ] *){3,})*$
另外,如果您只处理字母数字文本,则可以使用这种更简单,更容易维护的正则表达式,
^(?:[a-z0-9] *){3,}(?:\+ *(?:[a-z0-9] *){3,})*$
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句