业务场景:
//将截图中的所有参数从
${r"#{xxx}"}
//变成,
#{xxx} //也就是去掉两端的${r" "}
如图:我这里先介绍notpad软件中的,IDEA中使用有略有差异
查找表达式2:\${r"(#{(.*?)})"}
替换表达式:$1,如下图:
讲解:其他都是要去掉的,我们关注点只有:.*?或(.*?)
如图
替换后
语法讲解:
\:转义符,如果你需要去掉的内容中包含与表达式冲突的字符,用它转义,如$符号,如上图
.:匹配除换行符(\n、\r)之外的任何单个字符,我这里加*等于匹配任意多个字符
?:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
非贪婪限定符:这里引用一下:正则表达式贪婪与非贪婪模式 - 旭东的博客 - 博客园
如:String str="abcaxc";
Patter p="ab.*c";
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab.*c)。
非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab.*c)。
():标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。子表达式是指替换的表达式,如上图$1。
替换内容$1:
这里$1表示括号里(.*?)的内容,有一对括号就是$1,两对括号就是$2,三对括号$3,以此类推......
括号里是正则表达式匹配的内容。
IDEA实现以上业务场景,idea版本:2021.3
语法粘在这:\$\{r\"(#\{.*?})\"\}
替换成:$1
语法讲解:语法是一样的,但是notpad中遇到{}、""不需要转义,但是IDEA需要使用/转义
\:转义符,如果你需要去掉的内容中包含与表达式冲突的字符,用它转义,如$符号,如上图
.:匹配除换行符(\n、\r)之外的任何单个字符,我这里加*等于匹配任意多个字符
?:匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
非贪婪限定符:这里引用一下:正则表达式贪婪与非贪婪模式 - 旭东的博客 - 博客园
如:String str="abcaxc";
Patter p="ab.*c";
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab.*c)。
非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab.*c)。
():标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。子表达式是指替换的表达式,如上图$1。
替换内容$1:
这里$1表示括号里(.*?)的内容,有一对括号就是$1,两对括号就是$2,三对括号$3,以此类推......
括号里是正则表达式匹配的内容。