3

\\.(.*)}Android テスト プロジェクトで特定の文字列を検索するために正規表現パターンを使用しています。この正規表現を使用してオンラインで利用可能なツールをチェックすると、正規表現は正常に見えます。しかし、Android Test Project では、次のエラーが発生しています。

java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 7:
\.(.*)}
^
at java.util.regex.Pattern.compileImpl(Native Method)
at java.util.regex.Pattern.compile(Pattern.java:400)
at java.util.regex.Pattern.<init>(Pattern.java:383)
at java.util.regex.Pattern.compile(Pattern.java:367)

何が問題ですか?

4

3 に答える 3

10

あなたはあなたのエスケープを試すことができます}: -

"\\.(.*)\\}"  // escaping `}` not needed in Java

で動作しない理由はわかりませんandroidが、正常にJava動作without escapingします。

ただし、開き中括弧を使用している場合は、Java でもエスケープする必要があります。

"\\.(.*)\\{"  // escaping `{` needed even in Java
于 2012-11-22T09:05:29.450 に答える
7

}@Rohit Jainが言ったように、あなたは逃げる必要があります:

String regex = "\\.(.*)\\}";

あなたの正規表現はJavaで動作しますが、Androidでは何らかの理由で失敗します.

于 2012-11-22T09:08:24.977 に答える
0

私は同じ問題に直面していました。で囲むだけです。

 try{

 }catch (PatternSyntaxException e) {
           e.printStackTrace();
        }

そしてそれはうまくいきました。

于 2019-06-04T11:07:27.820 に答える