0

我想在Eclipse中使用正则表达式来使代码适应软件更新。

代替

{$CFG->prefix}example1.xy

代码必须是:

{example1}.xy

去工作。

另一个例子是:

{$CFG->prefix}example2.foo

>

{example2}.foo

常数部分是{$CFG->prefix}.

我尝试了以下方法(我使用空格使阅读更容易):

寻找:\{\$CFG-\>prefix\} ([a-z]|[0-9])* \. ([a-z]|[0-9])*

它将找到请求的字符串。我努力更换它。

我可以,/1用来存储正则表达式的结果并在替换中使用它(对吗?)但我不确定如何修改/操作这个结果。

谢谢你的帮助。

4

2 回答 2

2

你可以试试

\{\$CFG-\>prefix\}([a-z0-9]*)\.

并替换为

{\1}.
  1. 我不确定为什么你的正则表达式中有空格,我删除了它们。

  2. 量词*应该在您的组内,否则您将只有最后一个匹配的字符\1而不是完整的单词。

  3. 由于您不想替换最后一部分,因此您不需要匹配和替换它。

于 2012-08-15T09:15:32.740 回答
1

尝试以下搜索和替换:

查找\{\$CFG->prefix\}([a-z0-9]*)\.([a-z0-9]*)

替换为{\1}.\2

使用上述以下内容:

前     成为     后

是一个快速的截屏视频,展示了这一点。

对 OP 的 Find reg-ex 所做的更改

为了使上述查找替换工作,我必须对 OP 的查找表达式进行以下更改:

  1. 删除了空格。
  2. 在组内移动了贪婪匹配修改器:即 ([...]*)代替([...])*
  3. 更正了字符集:即[a-z0-9]代替[a-z]|[0-9]
  4. 引入了另一个组,该组捕获了该期间之后的部分。然而,这并不是严格需要的,但在某些情况下可能很有用。
于 2012-08-15T09:13:48.843 回答