我的要求是:
e.g。以下是有效的字符串:
Ab*08
*.6-*N*
以下是无效字符串:
****AB-*
GH.*
我的正则表达式如下:
^(.*?[a-zA-Z0-9.\-]){4,}.*$
我在第1点和第2点提到的基本验证是有效的。但正则表达式允许其他特殊字符,如<,>,&我怎样才能修改我的正则表达式来实现这个目标?
答案 0 :(得分:5)
您可以使用
^(?:[*]*[a-zA-Z0-9.-]){4}[*a-zA-Z0-9.-]*$
它检查4个有效字符(可能被*
包围)并检查您的整个字符串是否仅包含您所需的字符。
注意:regex101不完全支持java正则表达式语法。显示的模式是PCRE模式,但所有使用的功能也可以在java regex中使用。
注意2:如果使用.matches
检查输入,则可以省略锚点,锚点已经锚定。
答案 1 :(得分:0)
^(?:\**[\w\d.-]\**){4,}$
这应该这样做。更简单一点。