我需要正则表达式,它可以匹配像这样的字符串
_test
123test
test
test_123
test-123
123.a
我创建了这个正则表达式:
/^[_0-9a-z][_.\-a-z0-9]*$/
但是,如果字符串只包含数字,我想排除它。
我该如何解决?
答案 0 :(得分:3)
为避免匹配仅限数字的字符串,请添加否定前瞻:
^(?![0-9]+$)[_0-9a-z][_.\-a-z0-9]*$
^^^^^^^^^^
(?![0-9]+$)
预测仅在字符串的开头触发一次,并尝试匹配一个或多个数字直到字符串的结尾。如果找到它们,匹配将失败(不会返回匹配),因为前瞻是否定。