我正在尝试使用查找替换对话框(Ctr-F)在eclipse中进行一些字符串替换,我甚至不确定它是否可以在单个操作中执行...
假设我正在编辑一个文本文件,其中包含一对单词列表(对中的单词用点分隔,对用逗号分隔),例如
{word1.word2,word3.word4,wordn.wordm,...}
我想找到与此模式匹配的所有字符串并将其替换为 成对中所有第二个单词的列表,例如
{word2,word4,wordm,...}
这可能与单个查找替换操作有关,如果是,那么查找和替换表达式会是什么?
显然,在find-replace对话框中,我会检查正则表达式并替换所有复选框
答案 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?