我有正则表达式:
"(al|sf|sa|sc|nrc|nrc form|doe|doe f|lsi|doe form psd f|doe al f)?[\\s\\-\\.]*[\\d]{3,6}[\\s\\-\\.]*[\\w]{1,4}"
我不希望纯粹的数字字符串(如“2001”)通过此测试,但“2001”正在传递此正则表达式。为什么?我该如何解决这个问题?
答案 0 :(得分:2)
?
和*
部分是可选的,因此正则表达式中唯一需要的部分是
\d{3,6}\w{1,4}
\w
包含数字,因此它会通过,因为2001年是3 \d
和1 \w
。
答案 1 :(得分:1)
你可以像这样添加负面的预测:
(?!^\\d+$)