比较牛逼的正则表达式替换

//String reg = "[(]([^(])*([\\s])*([t,T][o,O]|[-]|[~][\\s])([\\s])*([^)])*[)]";
//String inStr = "ti=engine and ab=(turbo wf5 jet) and pd=(2001-2009),pd=(2001 ~ 2009)";
//String returnStr = null;
//String newStr = "";
//while (null != (returnStr = getContext(inStr, reg))) {
// newStr = returnStr.replace("(", "[").replace(")", "]");
// inStr = inStr.replace(returnStr, newStr);
//}
//System.out.println(inStr);


public static String replaceBraceRange(String inStr) {
String reg = "[(]([^(])*([\\s])*([t,T][o,O]|[-]|[~]|[\\s])([\\s])*([^)])*[)]";
// String inStr =
// "ti=engine and ab=(turbo wf5 jet) and pd=(2001 to 2009),pd=(2001 ~ 2009)";
String returnStr = null;
String newStr = "";
while (null != (returnStr = getContext(inStr, reg))) {
newStr = returnStr.replace("(", "[").replace(")", "]");
inStr = inStr.replace(returnStr, newStr);
}
return inStr;
}


public static String getContext(String instr, String reg) {
Pattern p = Pattern.compile(reg);// 匹配开头,结尾的文档
Matcher m = p.matcher(instr);// 开始编译
if (m.find()) {
return m.group();// 获取被匹配的部分
}
return null;
}


public boolean ifContext(String instr, String reg) {
Pattern p = Pattern.compile(reg);// 匹配开头,结尾的文档
Matcher m = p.matcher(instr);// 开始编译
if (m.find()) {
return true;// 获取被匹配的部分
}
return false;
}


你可能感兴趣的:(比较牛逼的正则表达式替换)