2016-04-29 43 views
0

這一定很簡單,但我無法繞開它。Matcher for Strings misses group編寫的正則表達式

我有一個字符串「qu'il」。

我也有應該對被檢查的String pttrns含模式,這樣的事情:

pttrns = "^(([dcjlmnstDCJLNMST]'|[Qq]u'|[Jj]usqu'|[Ll]orsqu'))(.+)$";

我建我的模式是這樣的:p = Pattern.compile("^(" + p + ")(.+)$");

現在我盡力配合:

m = p.matcher("qu'il");

我愛ð預計三組:

  • 0:qu'il
  • 1:曲」
  • 2:IL

相反,我得到

  • 0:qu'il
  • 1:qu'il
  • 2:qu'
  • 3:qu'

我該如何解決這個問題?

回答

3

刪除不必要的捕獲組。而且你也不需要在已經錨定的正則表達式之前添加^(

pttrns = "^([dcjlmnstDCJLNMST]'|[Qq]u'|[Jj]usqu'|[Ll]orsqu')(.+)$"; 
p = Pattern.compile(pttrns); 

DEMO