idea 正则表达式搜索替换应用详解

来自:网络
时间:2021-11-07
阅读:

idea 正则表达式搜索替换简单应用 利用正则表达式,idea可以进行快速大量替换

 1.CTRL+R 快捷键调出下面当前页面替代操作栏

idea 正则表达式搜索替换应用详解

注意要使用正则表达式替换需要勾选regex

2.利用正则表达式进行替换

下面展示一些 简单操作的例子。

(\w+)get\(0\).getValue\("(\w+)"\)
 dtCfwStget(0).getValue("CFW_CD")
	$1.getValue(0,"$2")
 dtCfwSt.getValue(0,"CFW_CD")

	(\w+).getItem\("(\w+)"\).toString\(\).ToBscNumber\(\)
drItem.getItem("PERS_NUMBE").toString().ToBscNumber()
	$1.getItemBscNumber("$2")
drItem.getItemBscNumber("PERS_NUMBE")

	: (\w+).Rows\)
for (DataRow drItem : dtCardInfo.Rows)
	: $1.Rows())
for (DataRow drItem : dtCardInfo.Rows())

	row.getItem\("(\w+)"\).toString\(\).ToDecimal\(\)
row.getItem("ACT_MTH_VAL").toString().ToDecimal()
	row.getItemBigDecimal(	"$1")
row.getItemBigDecimal(	"ACT_MTH_VAL")

	\[0\]\["(\w+)"\]
matAssResRows[0]["ASS_VAL"]
	.get(0).getItem("$1")
matAssResRows.get(0).getItem("ASS_VAL")

以第二个为例(regester很好用)

idea 正则表达式搜索替换应用详解

若果想把类似于

drItem.getItem("PERS_NUMBE").toString().ToBscNumber()
drItaaa.getItem("PERS_bbb").toString().ToBscNumber()
drItemcccc.getItem("PERS_NUMBEccccc").toString().ToBscNumber()

一件替换为

drItem.getItemBscNumber("PERS_NUMBE")
drItaaa.getItemBscNumber("PERS_bbb")
drItemcccc.getItemBscNumber(PERS_NUMBEccccc")

第一步 选取一条原代码,将所有的左括号,右括号,左中括号,右中括号前面叫上\ ,使其变为正确的正则表达式:

// drItem.getItem("PERS_NUMBE").toString().ToBscNumber();
// drItem.getItem\("PERS_NUMBE"\).toString\(\).ToBscNumber\(\);
具体还有哪些符号前面需要加\转义,可以网查

第二部 选择需要变为X 的变量,用()选取,\w+指定选取括号里的字符

idea 正则表达式搜索替换应用详解

根据需求选择,这里通用的为(/w+)代替 X

// X.getItem("X").toString().ToBscNumber();

// (/w+).getItem\("(\w+)"\).toString\(\).ToBscNumber\(\);

这里匹配阶段结束(/w+).getItem("(\w+)").toString().ToBscNumber()可以匹配到所有 X.getItem(“X”).toString().ToBscNumber()的代码

第三步替代 将你需要替代成的X表达式用$1,$2…替代

这是我最终需要代码的一种
//drItem.getItemBscNumber("PERS_NUMBE")

化为X表达式
// X.getItemBscNumber("X")

利用$加序号指定需要替代的位置
这是之前匹配阶段的X表达式,$1选中第一个(\w+),,$2选中第一个(\w+)......
 X.getItem("X").toString().ToBscNumber();

将 X.getItemBscNumber("X")替代为
$1.getItemBscNumber("$2")

最后输入替代

idea 正则表达式搜索替换应用详解

这里报红是因为我替代过了

返回顶部
顶部