当您要搜索和替换特定的文本模式时,请使用正则表达式。它们可以帮助您进行模式匹配分析、解析、过滤结果等等。一旦你学会了正则表达式语法,你就可以在几乎任何语言中使用它了。
首先你需要了解正则表达式的语法,关于正则表达式可以查看:正则表达式语法和常用表达式列表。
下面就看一下,如果在IDEA中使用正则表达式,如下图:
这里主要将一下,使用正则表达式进行文本的修改和替换,替换时我们需要使用到捕获组,使用()表示,然后在IDEA中可以获取$n拿到捕获组中的值。
如: (\w+)-(\w+) 可以使用 $1 $2 $3 引用分组
主要注意的是,每一个()都代表一个捕获组,使用$n时下标不能乱。
大小写转换
- \l 将字符更改为小写,直到字符串中的下一个字符,例如,BAR 变成 bAR
- \u 将字符更改为大写,直到字符串中的下一个字符,例如,bar 变成 Bar
- \L 将字符更改为小写,直到文字字符串的末尾,例如,BAR 变成 bar
- \U 将字符更改为大写,直到文字字符串的末尾,例如,bar 变成 BAR
例如:
案例1:
XXX-yyy
替换为:
xXXxxx_yyyYYY
案例2:
VLR_OTHER
VLR_VOLKSWAGEN
VLR_BUICK
VLR_BMW
替换成:
String MPC_VEHICLE_TYPE_VLR_OTHER = "mpc.vehicle.type.vlr.other";
String MPC_VEHICLE_TYPE_VLR_VOLKSWAGEN = "mpc.vehicle.type.vlr.volkswagen";
String MPC_VEHICLE_TYPE_VLR_BUICK = "mpc.vehicle.type.vlr.buick";
只列举一部分,其实有几百个,需要定义成字符串常量,这个重复的工作枯燥还容易错,主要牵扯到大小写,还要将“_”替换成“.”
查找:([A-Za-z0-9]+)_([A-Za-z0-9]+)
替换:String MPC_VEHICLE_TYPE_$1_$2 = "mpc.vehicle.type.\L$1.\L$2"
案例3:
VLR_VOLKSWAGEN = 1, //大众
VLR_BUICK = 2, //别克
VLR_BMW = 3, //宝马
替换成:
VLR_VOLKSWAGEN(1, "大众"),
VLR_BUICK(2, "别克"),
VLR_BMW(3, "宝马"),
只列举一部分,其实有几百个,主要将给定的车辆品牌定义为枚举类,这几百个如果人工修改那就那难,而且还要保证不能出错,数字要和品牌进行对应
查找:VLR_([A-Za-z0-9]+) *= *(\d+), *//([\u4e00-\u9fa5A-Za-z0-9]+)
替换:VLR_$1($2, "$3"),