2016-04-29 5 views
0

これは単純なものでなければなりません。正規表現のためのMatcherは、Strings missesグループからコンパイルされました。

私は文字列「qu'il」を持っています。

私もこのようなもの、と照合しなければならないパターンを含むString pttrnsをしている:今、私は一致させようp = Pattern.compile("^(" + p + ")(.+)$");

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

私はこのように私のパターンを構築

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

I woul

  • 0:QU」
  • 2: qu'il三つのグループを期待dは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

関連する問題