2012-02-24 41 views
1

想知道是否有人能告訴我爲什麼這個正則表達式不起作用。Java正則表達式不按預期工作

表達 - >^[A-Za-z0-9$&!#-_?:;\"']+$

的問題是,它的匹配對字符不在集合。例如,單詞match正確匹配,單詞match~不正確,但[email protected]match!錯誤地匹配。

我用java與之匹配,匹配應該是相當有下面的代碼直截了當:

 RE re = new RE(expression); 
     return re.match(value); 

我知道這可能是一些可笑的簡單,我失蹤,但如果任何人有對它的任何想法,我會非常感激!

+0

根據你的表達'match!'是一個可接受的值。 – 2012-02-24 16:37:15

+0

這引出了一個問題'爲什麼''''match會通過測試?'根據你'米'是不是在角色類。你似乎理解類的語法。你甚至似乎知道斷言,量詞等.. – sln 2012-02-24 16:52:24

回答

1

的問題是在字符集的連字符-。您正在接受#到_中的字符。

將其更改爲^[-A-Za-z0-9$&!#_?:;\"']+$或轉義-

+0

布魯諾,這正是問題所在。非常感謝你。 – 2012-02-24 17:48:44

2

我懷疑它的#-_正在表演。逃離-,看看是否有幫助。

新的表達方式會

相關問題