我想创建一个正则表达式:
我创建的正则表达式是:
^[^/\s/]+[a-z]{1,}[0-9]*[\-\_]*[^\/][^/\s/]$
它仅在我的字符串包含至少4个字符(包括1个字母)时才匹配。我试过https://regex101.com/#javascript有人可以帮我解决我在这里做错的事。
答案 0 :(得分:2)
您需要了解lookaround。您问题的一个解决方案是:
/(?=^[\w-]{4,}$)(.*[a-z].*)/gmi
(?=^[\w-]{4,}$)
将声明您的输入将仅包含az,数字,_
和-
范围内的字符,其长度至少 4 (.*[a-z].*)
确保a-z范围内的至少一个字符。请参阅Demo
答案 1 :(得分:1)
使用基本的正则表达式原语,您可以使用:
/^[0-9_-]*[a-z]+[0-9a-z_-]*$/i
它可以正常使用这些示例输入字符串:
与这些字符串不匹配:
它速度很快,几乎可用于每个正则表达式引擎,甚至是非标准(非扩展)grep。