正则表达式word1.word2 - > Eclipse查找替换对话框中的word2

时间:2014-10-08 07:11:12

标签: regex eclipse

我正在尝试使用查找替换对话框(Ctr-F)在eclipse中进行一些字符串替换,我甚至不确定它是否可以在单个操作中执行...

假设我正在编辑一个文本文件,其中包含一对单词列表(对中的单词用点分隔,对用逗号分隔),例如

{word1.word2,word3.word4,wordn.wordm,...}  

我想找到与此模式匹配的所有字符串并将其替换为 成对中所有第二个单词的列表,例如

{word2,word4,wordm,...}

这可能与单个查找替换操作有关,如果是,那么查找和替换表达式会是什么?

显然,在find-replace对话框中,我会检查正则表达式并替换所有复选框

2 个答案:

答案 0 :(得分:1)

这不是防弹,但试试这个:

Search: (?<=\{|,)\w+\.(?=\w+(,|\}))
Replace: <blank>

这假设eclipse支持环顾四周,由于known bug而没有替换它。将外观转换为捕获并简单地将捕获的文本放回,这可以(测试):

Search: (\{|,)\w+\.(\w+(,|\}))
Replace: $1$2

答案 1 :(得分:0)

您可以使用groups。搜索([^{.,]+)\.([^{.,]+),然后使用\2$2作为替换模式。

正则表达式的()部分告诉它将此部分记住为一个组。然后,您可以按编号访问每个组。 $0是一个特殊的组,它等于整个匹配的输入。

如果您嵌套群组,则只需计算(以查找要使用的号码:

a((1)?(2)?)b

第1组:1?2?
第2组:1?
第3组:2?