正则表达式允许特殊字符

时间:2013-03-03 13:06:28

标签: java regex

我使用以下模式来匹配我的字符串:

  

[A-ZA-Z0-9] *

即使我传递字符串*$#,它也会被正则表达式匹配。有人可以解释我做错了什么或为什么会这样?

2 个答案:

答案 0 :(得分:3)

您应该使用^(字符串的开头)和$(字符串的结尾)。

所以,正则表达式将是

^[a-zA-Z0-9]*$

如果您使用[a-zA-Z0-9]*方法,

find会匹配字符串中的任何地方。使用^$将匹配来自的整个输入从头到尾

如果您使用matches方法,则在尝试匹配整个字符串时不需要^$

答案 1 :(得分:2)

[a-zA-Z0-9]*表示任何这些字符中的0个或更多。如果您正在使用Matcher.find(),它会在任何地方/任何地方找到它,因为它可以匹配字符串中的任何位置。