我正在使用以下模式来匹配我的字符串:
[a-zA-Z0-9]*
即使我传递 String *$#
,它也会被正则表达式匹配。有人可以解释我做错了什么或为什么会这样吗?
您应该使用^
(字符串的开头)和$
(字符串的结尾)。
所以,正则表达式将是
^[a-zA-Z0-9]*$
[a-zA-Z0-9]*
如果您使用method..Using将匹配字符串中的任何位置,并将匹配从开始到结束的整个输入find
^
$
如果您使用matches
不需要的方法^
,$
因为它会尝试匹配整个字符串
[a-zA-Z0-9]*
表示 0 个或多个这些字符中的任何一个。如果您使用的是Matcher.find(),它会在任何地方/任何地方找到它,因为它可以匹配字符串中的任何地方。