2013-03-01 147 views
-1

正則表達式模式:正則表達式模式匹配誤差(字符串)在JAVA

Pattern BASIC_GRAMMAR = Pattern.compile("^((NONTERMINALASSIGNMENT|TERMINALASSIGNMENT)[NONTERMINAL|TERMINAL|PIPE]+)+$"); 

字符串,它是通過不應該是:

NONTERMINALASSIGNMENTNONTERMINALTERMINALNONTERMINALASSIGNMENTTERMINALPIPETERMINALERROR 

有「ERROR」結尾,並且不應通過檢查但它確實。

任何想法?

+2

搜索Oracle Java Regex教程。方括號表示字符類,並且完成與你認爲他們所做的完全相同的事情。 – jlordo 2013-03-01 23:18:49

+0

我想你需要用'\ b'來匹配整個單詞看一看:http://www.regular-expressions.info/alternation.html – Cemre 2013-03-01 23:24:27

回答

1

正確的方式:

Pattern BASIC_GRAMMAR = Pattern.compile("^((NONTERMINALASSIGNMENT|TERMINALASSIGNMENT)(NONTERMINAL|TERMINAL|PIPE)+)+$"); 

感謝所有的期待。