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]

第一场比赛是 youtube3 而不是 youtube2....所以 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 回答