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