解决replaceAll替换字符串中包括特殊符号时出现的问题

来源:互联网 发布:绮罗香小说知夏 编辑:程序博客网 时间:2024/06/15 12:19
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexUtil {
private static Pattern pattern=Pattern.compile("([//p{Punct}&&[^//$////]])");


public static String escapeRegex(String original) {
Matcher matcher=pattern.matcher(escapeDollarBackslash(original));
StringBuffer buffer=new StringBuffer();
while (matcher.find()) {
String group=matcher.group();
matcher.appendReplacement(buffer, "////"+group);


}
matcher.appendTail(buffer);
return buffer.toString();
}



public static String escapeDollarBackslash(String original) {
StringBuffer buffer=new StringBuffer(original.length());
for (int i=0;i<original.length();i++) {
char c=original.charAt(i);
if (c=='//'||c=='$') {
buffer.append("//").append(c);
} else{
buffer.append(c);
}
}
return buffer.toString();
}


原创粉丝点击