日期:2014-05-20 浏览次数:20940 次
String str="sssegegegsssgege";
str=str.replaceAll("(sss)(.*?)(\\1)(.*?)", "$1$2hello$4");
System.out.println(str);
/**
* 替换第二个匹配的目标子串
* @param str 源字符串。
* @param target 需要替换的目标子串。
* @param replacement 需要替换成的字符串。
* @return 将源字符串中出现的第二个target换成replacement后的字符串。
* @throws NullPointerException 当任一参数为空时。
* @throws Exception 找不到第二个匹配的字符串时。
*/
public static String replaceSecond(String str, String target,
String replacement) throws NullPointerException, Exception {
if (str == null
------解决方案--------------------
target == null
------解决方案--------------------
replacement == null)
throw new NullPointerException();
int index = str.indexOf(target);
if (index == -1)
throw new Exception("Not Found.");
index = str.indexOf(target, index + target.length());
if (index == -1)
throw new Exception("Not Found.");
String str1 = str.substring(0, index);
String str2 = str.substring(index);
str2 = str2.replaceFirst("sss", "hello");
return str1 + str2;
}
str=str.replaceAll("(\\Q"+img+"\\E)(.*?)(\\1)(.*?)", "$1$2"+hello+"$4");