2013-03-03 60 views
0

我使用下面的模式來匹配我的字符串:正則表達式允許的特殊字符

[A-ZA-Z0-9] *

即使當我傳遞字符串*$#,它通過正則表達式進行匹配。有人可以解釋我做錯了什麼或爲什麼會發生這種情況?

+3

顯示您的匹配代碼。請注意,您的正則表達式匹配空字符串。 '*'表示零個或多個字符 – 2013-03-03 13:07:48

+0

更改爲*,將工作嗎? – VladL 2013-03-03 13:09:54

+0

@VladL不幸的是,這將無法正常工作...''+'不會做任何接受匹配至少一個字符.. – Anirudha 2013-03-03 13:13:35

回答

3

您應該使用^(字符串的開頭)和$(字符串的末尾)。

所以,正則表達式將

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

[a-zA-Z0-9]*將匹配任何地方在字符串中如果使用find method..Using ^$將整個輸入從開始直到匹配結束

如果您使用matches方法,您不需要有^$,因爲它試圖匹配整個字符串

+0

感謝您的解釋,它有幫助。 – Logan 2013-03-05 02:08:01

2

[a-zA-Z0-9]*表示0或更多任何這些字符。如果您使用的是Matcher.find(),它會在任何地方/任何地方發現它,因爲它可以匹配任何字符串中的任意位置。

相關問題