当您要搜索和替换特定的文本模式时,请使用正则表达式。它们可以帮助您进行模式匹配分析、解析、过滤结果等等。一旦你学会了正则表达式语法,你就可以在几乎任何语言中使用它了。

首先你需要了解正则表达式的语法,关于正则表达式可以查看:正则表达式语法和常用表达式列表

下面就看一下,如果在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"),

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐