2016-11-23 25 views
1

我想我正則表達式來分配這些和只有這些值:1A,1B,2A,2B,3A,3B,N。看來我的正則表達式不起作用:「[([1-3] [a-b])(n)]」。爲什麼它不會「看到」包含[1-3] [a-b]的圓括號,並且該正則表達式應該如何正確工作?不正確的正則表達式分配

+0

外括號完全破壞了你的正則表達式。試試's.matches(「[1-3] [ab] | n」)'。你的意思是你想匹配一個等於'n'的字符串作爲其中一個選擇嗎?或者'2n','1n'? –

+0

Just n。但刪除外部支架幫助,現在它工作正常!非常感謝! :) – Virginia

+0

那麼,你想匹配'1an'? '([1-3] [a-b])(n)'會匹配'1an','3bn' ...我的意思是,刪除外方括號不會幫助我想。你的意思是我的正則表達式以上工作? –

回答

1

我想我的正則表達式來分配這些,只有這些值:1a1b2a2b,3A,3bn

這意味着,你需要使用

.matches("[1-3][ab]|n") 

regex demo

在你的格局,外方括號創建一個字符類和內那些剛剛被視爲unions和整個"[([1-3][a-b])(n)]"只匹配1個字符(一個(13數字,或ab字母等

+0

很高興爲你工作。請考慮接受答案(請參閱[如何接受SO答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work))。 –