一、替换字符串中以子串a开头,以子串b结束的所有字符串
select a, b, c from VIEW_LOG
where 1=1 @if(!isEmpty(P_orgNo)){@ and 字段名 = ${s_id} @}@ and 1=1
@if(!isEmpty(P_userId)){@ and 字段名 = ${P_userId} @}@
- 删除以 “@if(” 开头,以 “@}@” 结束的字符子串
java 代码:
String reg = "@if[(].*?(@\\}@)";
sql = sql.replaceAll(reg, "");
注意:
a. “(”:小括号在正则中表示元组,匹配小括号需用"[ ]"包起来;
b. “.*?” :表示前后之间出现的任何字符;“?”:表示非贪婪模式,已找到子串立即返回,无论后面是否还有 “@}@”;
c. “@\\}@” 大括号要用双斜杠转义;