在开发中会遇到一些代码优化和改动,并且这些改动涉及到整个文件或整个项目,简单点的替换还好,如果遇到一行代码中要替换部分内容,另外部分内容还需要保留原来代码这种情况就费时费力了,这个问题也是困扰我挺久的,所以静下心来查阅了一下正则的相关资料,得到用捕获组合和替换模式可以轻松解决。以下是官方文档的例子和说明:
“要创建带编号的捕获组,请在正则表达式模式中用圆括号将子表达式括起来。 捕获按正则表达式中左括号的位置从左到右自动编号。 要访问捕获的组:在正则表达式中:请使用 \number。 例如,正则表达式(\w +)\s\1 中的 \1 引用第一个捕获组(\w +)。
在替换模式中:请使用 $number。 例如,已分组的正则表达式(\d)([a - z]) 定义了两个组:第一个组包含一个十进制数字,第二个组包含一个 a 到 z 之间的字符。 该表达式在以下字符串中查找四个匹配项:1a 2b 3c 4d。 替换字符串 z$1 仅引用第一个组($1),并将该字符串转换为 z1 z2 z3 z4。”
读起来有点难理解,通俗的讲就是查找的表达式里面用()将需要保留的内容括起来,并且可以括号多个,每个括号之间会自动识别成一个分组,序号从1开始递增1,替换的内容里面用$1、$2来对应,查找的表达式里面的(),第一个括号就用$1、第二个括号就是$2,然后其他剩下的字符串内容就是需要替换的。下面直接上实例:
1.
2.
第一个是把decimal类型的默认值设为0,第二个就是把string类型的默认值设为空,试想一下,如果一个实体类里面有多种类型的字段并且要根据类型设置对应的默认值,比起一个一个去改,用这个方式是不是方便多了,分享出来大家一起学习。这个方法在其他常用的编辑器或IDE没有测试过,我想大部分都是可以用的。