假如有一个字符串 如下:<embed src="F:\Fun\756.swf" width="90" height="70" ></embed><embed src="F:\Fun\519.swf" width="90" height="70" ></embed>
我现在想解析,先循环2次 //这个 我已经解决。然后在循环里, 分别对src="...." 替换成 2个值
最终得出的效果为:
<embed src="aa_01" width="90" height="70" ></embed><embed src="aa_02" width="90" height="70" ></embed>01,02 为2次循环 得到的值。 请问 大家有什么好办法!
我现在想解析,先循环2次 //这个 我已经解决。然后在循环里, 分别对src="...." 替换成 2个值
最终得出的效果为:
<embed src="aa_01" width="90" height="70" ></embed><embed src="aa_02" width="90" height="70" ></embed>01,02 为2次循环 得到的值。 请问 大家有什么好办法!
String[] embed = new String[]
{"<embed src=\"F:\\Fun\\756.swf\" width=\"90\" height=\"70\" ></embed>",
"<embed src=\"F:\\Fun\\756.swf\" width=\"90\" height=\"70\" ></embed>"};
String temp = null;
String replace = null;
for (int i = 0; i < embed.length; i++) {
temp = embed[i].substring(embed[i].indexOf("src="), embed[i].indexOf("width=") - 1);
replace = "src=\"aa_0" + (i + 1) + "\"";
System.out.println(embed[i].replace(temp, replace));
}
这样可以不
String string = "<embed src=\"F:\\Fun\\756.swf\" width=\"90\" height=\"70\" ></embed><embed src=\"F:\\Fun\\519.swf\" width=\"90\" height=\"70\" ></embed>";
StringBuffer sBuffer = new StringBuffer();
Matcher matcher = Pattern.compile("(src\\s*=\\s*\")[^\"]*(\")").matcher(string); //匹配 src = " ";
int i=0;
while(matcher.find()){
matcher.appendReplacement(sBuffer,"$1aa_0"+ ++i+"$2"); //把到匹配的 把其转为 src = "aa_0i"
}
matcher.appendTail(sBuffer); //将后面部分加入sBuffer中
System.out.println(sBuffer);结果:<embed src="aa_01" width="90" height="70" ></embed><embed src="aa_02" width="90" height="70" ></embed>