我需要使用正则表达式验证输入字符串。
要求是:
输入
不得以%
,_
不得包含&
,#
,>
,<
可能为空
我已成功使用[^%_#&<>][^#&<>]*|^$
。
有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
您的正则表达式错误,您还应该对第一个变体放置^
和$
限制:
^[^%_#&<>][^#&<>]*|$
这是因为第一种情况可以应用于子串。
您定义的正则表达式只是说明:空字符串,或至少有一个字符不是%
,_
,#
,...
它认为提议的正则表达式足够好。一些(可能不是java)正则表达式库提供了额外的功能来声明字符串不应包含特定字符。但由于正则表达式并不复杂,所以它不会那么有用。