[英]Java string validation using regex
我需要使用正则表达式验证输入字符串。
要求是:
输入
不能以%
_
开头
不得包含&
, #
, >
, <
可能是空的
我已经成功使用[^%_#&<>][^#&<>]*|^$
。
有没有更好的方法来解决这个问题?
您的正则表达式是错误的,还应该在第一个变体上放置^
和$
约束:
^[^%_#&<>][^#&<>]*|$
这是因为第一种情况可以应用于子字符串 。
您定义的正则表达式仅声明:空字符串,或具有至少一个不是%
, _
, #
,...的字符的字符串
它认为拟议的正则表达式足够好。 一些(可能不是Java)正则表达式库提供了附加功能,以声明字符串不应包含某个字符。 但是由于正则表达式并不是那么复杂,所以它不会有太大帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.