1

重複の可能性:
Flex RegExp から Java RegExp

なぜ機能しないのかわかりません..私はJavaを使用しています..

...
String patternString = "([^{}]*{[^{}]+}[^{}])*";
Pattern p = Pattern.compile(patternString);
...

私が受け取るエラーは次のとおりです。

Illegal repetition near index 4
([^{}]*{[^{}]+}[^{}]*)
4

1 に答える 1

7

文字クラス内にない限り、リテラル中かっこをエスケープする必要があります。

String patternString = "([^{}]*\\{[^{}]+\\}[^{}])*";

他のほとんどの正規表現フレーバーは、中括弧が繰り返し演算子として使用されていない場合 ( のように[0-9]{1,3}) を認識できるため、正規表現を正しく解析します。しかし Java は、これらの中括弧をエスケープすることに固執しています。

于 2012-10-24T06:20:49.737 に答える