3

入力フィールドから受け取った文字列値があります。

String searchingText = getText();

文字列を受け取ったら、この文字列を検索します。しかし、文字列に\記号が含まれている場合、検索は失敗します。

私は特殊文字について知っており、置き換えようとしています:

searchingText = searchingText.replaceAll("\\","\\\\");

しかし、エラーが発生し、アプリがシャットダウンされました。

Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1

調査の後、正規表現を作成し、マッチャーに置き換えようとしました:

    Map<String,String> sub = new HashMap<String,String>();
    sub.put("\n", "\\\\n");
    sub.put("\r", "\\\\r");
    sub.put("\t", "\\\\t");

    StringBuffer result = new StringBuffer();
    Pattern regex = Pattern.compile("\\n|\\r|\\t");
    Matcher matcher = regex.matcher(bodySearchText);

最後に、文字列を取得したいと思います-searchingText = \\代わりにsearchingText = \

解決策をお願いします。

4

2 に答える 2

0

これを変える

searchingText = searchingText.replaceAll("\\","\\\\");

searchingText = searchingText.replaceAll("\\\\","\\\\\\");

としてreplaceAll()かかり\\ます\

詳細については、こちらをお読みください

于 2013-11-07T12:49:44.493 に答える