首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式word1.word2 Eclipse find-replace对话框中的-> word2

正则表达式word1.word2 Eclipse find-replace对话框中的-> word2
EN

Stack Overflow用户
提问于 2014-10-08 15:11:12
回答 2查看 256关注 0票数 1

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

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

代码语言:javascript
复制
{word1.word2,word3.word4,wordn.wordm,...}  

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

代码语言:javascript
复制
{word2,word4,wordm,...}

是否可以使用单个查找-替换操作,如果可以,查找和替换表达式是什么?

显然,在查找-替换对话框中,我会选中正则表达式和全部替换复选框

EN

回答 2

Stack Overflow用户

发布于 2014-10-08 17:27:25

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

代码语言:javascript
复制
Search: (?<=\{|,)\w+\.(?=\w+(,|\}))
Replace: <blank>

这是假设eclipse支持look arounds,但由于known bug的原因,eclipse不支持look arounds。将外观转换为捕获,并简单地将捕获的文本放回原处,这是可行的(经过测试):

代码语言:javascript
复制
Search: (\{|,)\w+\.(\w+(,|\}))
Replace: $1$2
票数 1
EN

Stack Overflow用户

发布于 2014-10-08 17:14:04

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

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

如果您嵌套组,则只需计算(即可找到要使用的数量:

代码语言:javascript
复制
a((1)?(2)?)b

组1:1?2?

组2:1?

第三组:2?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26251077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档