2015-04-01 107 views
1

所以我有大量需要更改的文件。事情是这样的替换Eclipse中正则表达式的匹配查找并替换

String example=/abc/def/PATTERN/ghi 

,我想改变这种格局别的东西,比方说FIX

我想获得的是:

String example=/abc/def/FIX/ghi 

什么我得到的是:

FIX(整条生产线得到改变,只希望比赛被改变)

钍是正则表达式我使用,尽量避免注释行

^(?!\s*(//|\*)).*/PATTERN/
+0

我想我可能误解了你要的...我会重新读取和重新尝试回答。我删除了我的初始答案。 – Sildoreth 2015-04-01 17:33:13

+0

请您澄清一下吗?你是说你想替换第三个'/'分隔的字符串?或者你是否想要替换任何匹配PATTERN的'/'分隔符? – Sildoreth 2015-04-01 17:37:23

+0

我想替换每个/ PATTERN /我看到,替换/和模式字 – user1412716 2015-04-01 17:39:25

回答

0

,你可以换你需要更换后继续为捕获括号,并在替换字符串中使用反向引用它的模式的一部分:

搜索^(?!\s*(?://|\*))(.*/)PATTERN/
更换:      $1FIX/

现在,模式匹配:

  • ^ - 线的开始
  • (?!\s*(?://|\*)) - 如果不遵循与0+空格和//*(请注意,非捕获GROP (?:...)用来简化反向引用使用)
  • (.*/) - 第1组捕获比换行符符号直到最后/
  • PATTERN/其他任何0+字符 - 文字串PATTERN/

在替换模式,$1重新插入从其开始到/PATTERN/之前整行,及FIX/是字面更换零件。

enter image description here