【发布时间】:2017-07-25 13:48:22
【问题描述】:
我有一些字符串,如下所示:
it.mycompany.db.beans.str1.PD_T_CLASS
it.mycompany.db.beans.join.PD_T_CLASS
it.mycompany.db.beans.str2.PD_T_CLASS_1
it.mycompany.db.beans.join.PD_T_CLASS_1
PD_T_CLASS myVar = new PD_T_CLASS();
myVar.setPD_T_CLASS(something);
我想选择“PD_”部分用“”(空字符串)替换它,但仅在整行中不包含字符串“.join”。
我想要达到的是:
it.mycompany.db.beans.str1.T_CLASS
it.mycompany.db.beans.join.PD_T_CLASS
it.mycompany.db.beans.str2.T_CLASS_1
it.mycompany.db.beans.join.PD_T_CLASS_1
T_CLASS myVar = new T_CLASS();
myVar.setT_CLASS(something);
替换不是问题,因为我使用的是 eclipse 搜索工具,一旦显示正确的结果就会点击替换。
我试过了:
^((?!\.join\.).)*(PD_)*$ // whole string selected
^((?!\.join\.).)*(\bPD_\b)*$ // whole string selected
我开始感到沮丧,因为我已经搜索了一下(^((?!join bla bla 来自这些搜索)
你能帮帮我吗?
【问题讨论】:
-
试试
^(?!.*\.join\.)(.*)PD_=>$1。我知道一行中只有 1 个PD_需要删除? -
不...它再次选择整行:(
-
是的,但是替换为
$1 -
1) PD_ 可以在一行中多次出现,因为它是一个代码行,而 PD_something 是一个类,并且肯定有 PD_a_field 并且它们很多 2) 如果 eclipse 搜索工具可以使用 $1 进行替换...我不是在编写代码...我正在用 void 字符串替换部分代码(用于数据库表名更改)