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

//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);// 匹配<title>开头,</title>结尾的文档
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);// 匹配<title>开头,</title>结尾的文档
Matcher m = p.matcher(instr);// 开始编译
if (m.find()) {
return true;// 获取被匹配的部分
}
return false;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值