笔记_正则表达式替换字符串中特定范围内的字符。
功能:从字符串中找到所有<>之间的单引号,转换成双引号。
如:
<p><style height='222' index="index" id="css_index">那里最便宜asdfasdfa'as''asdfasdf'asdf'<a class='asdfa' href='ssss'></a></p>
转换成:
<p><style height="222" index="index" id="css_index">那里最便宜asdfasdfa'as''asdfasdf'asdf'<a class="asdfa" href="ssss"></a></p>
代码:
package test_java;
import java.util.regex.Matcher; import java.util.regex.Pattern;
public class test004 {
public static void main(String[] args) {
String str = "<p><style height='222' index=\"index\" id=\"css_index\">那里最便宜asdfasdfa'as''asdfasdf'asdf'<a class='asdfa' href='ssss'></a></p>";
System.out.println(str);
String result = changeStr(str);
System.out.println(result); }
private static String changeStr(String str){
Pattern p2 = Pattern.compile("\\<(.*?)\\>");
Matcher m2 = p2.matcher(str);
String temp = null;
StringBuffer sb = new StringBuffer();
while (m2.find()) {
temp = "<" + m2.group(1) + ">";
temp = temp.replace("'", "\"");
m2.appendReplacement(sb, temp); }
m2.appendTail(sb);
return sb.toString(); }
}