2011-12-07 34 views
1

文字列が一致しないJavaコードと一致させようとしています。例えば、私が一致するコードの次のブロックを持っている:一致しない部分文字列の正規表現

protected String methodName(String args[]) { 

    final String METHOD = "wrongMethodName"; 
    ... 

} 

そして、次のコードブロック私は今

protected String methodName(String args[]) { 

    final String METHOD = "methodName"; 
    ... 

} 

を一致させる必要はありません、私がしていますDOTALLを有効にする必要があり、次の(動作しない)正規表現、:

(\w+?)\(.*?\) ?{.*?METHOD *= *".*?"; 

私はキャプチャグループと背後に負の外観をしようとした場合、正規表現はCOMPありません背もたれの大きさは手前では分かっていないので、ile。

java.util.regex.PatternSyntaxException: 
    Look-behind group does not have an obvious maximum length near index 39 

この正規表現でキャプチャグループを使用して、キャプチャグループと一致しない文字列と一致させたいと思う方法はありますか?

+0

最終的な文字列にマッチしないのはなぜでしょうか?\\ "\\ p {L} * \\"; "" より具体的に何を一致させることができますか?間違った正しいメソッド名の文字列が何であるか知っていますか? –

答えて

2

私がしようと、(私が正しくあなたの問題を理解している場合)あなたの代わりに負の先読みを使用することができると思う:

(\b\w+?\b)\(.*?\) ?{.*?METHOD *= *"(?!\1).*?" 

here on Regexr

それを参照してください、私はそれそれ以外の場合は、最初のグループでも、単語の境界を使用しました2番目の文字で一致を開始するだけです。

関連する問題