0
mediaSourceSpecificJunkCharacters=mediaSourceSpecificJunkCharacters+",";   
Pattern p = Pattern.compile("\\[(.*?)\\],",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher matcher = p.matcher(mediaSourceSpecificJunkCharacters);
while(matcher.find()) {
    String stringToMatch=matcher.group(1);
    System.out.println("string to match "+stringToMatch);
    originalText=originalText.replaceAll(stringToMatch.trim(),"");
}

ここoriginalText="this is data from youtube youtube1 youtube2 youtube3 youtube4";mediaSourceSpecificJunkCharacters=[youtube2],[youtube3],[youtube4]

最初の一致はyoutube2ではなくyoutube3です....したがって、youtube2が置き換えられることはありません...なぜそうなのですか?

4

1 に答える 1

1

youtube1あなたもあなたのに持っていませんmediaSourceSpecificJunkCharacters。これをに変更します

    String mediaSourceSpecificJunkCharacters = "[youtube1],[youtube2],[youtube3],[youtube4]";

また、パターンをに変更します

    Pattern p = Pattern.compile("\\[(.*?)\\]", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);

youtube4あなたも置き換えたいのなら,、最後にあるのはあなたのコードでこれを防ぎます。

于 2012-07-06T06:37:26.830 に答える