2013-03-01 85 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)+)+$"); 

感谢所有的期待。