首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Notepad++查找/替换“=”两边的文本来替换

使用Notepad++查找/替换“=”两边的文本来替换
EN

Stack Overflow用户
提问于 2019-12-26 16:19:40
回答 1查看 549关注 0票数 2

在看完这个职位之后,我好奇地想要解决我过去遇到的一个问题。

假设我有一个文件,如下所示:

代码语言:javascript
复制
self.theta = theta
self.alpha = alpha
self.beta = beta

我希望能够交换等号两边的文本,将其转换为:

代码语言:javascript
复制
theta = self.theta
alpha = self.alpha
beta = self.beta

我能够通过使用像这样来解决这个问题,但是我想知道如何在Notepad++中直接解决这个问题。我不是在问如何在等号周围交换文本,而是在使用Notepad++中内置的查找/替换功能寻找正确的方法。

我问题开头提到的答案中,我尝试使用以下查找/替换:

  • 找到什么:(.*?)=(.*?)
  • 替换为:\2 = \1
  • 环绕:选中的
  • 正则表达式:选中的
  • .匹配换行符:清除了

但是,这会产生输出:

代码语言:javascript
复制
 = self.theta  theta
 = self.alpha  alpha
 = self.beta  beta

在Notepad++中使用正则表达式和模式匹配来解决这个问题的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-26 16:33:29

当前正则表达式模式的问题是它没有^$锚点,因此匹配行为与您预期的不同,请参阅此演示。由于DOT模式已关闭,第一个(.*?)将匹配=上的所有内容,而第二个(.*)则不匹配任何内容。这使得RHS术语在替换过程中不受影响,从而产生了您现在看到的输出。我建议在regex模式下进行以下查找和替换:

代码语言:javascript
复制
Find:    ^(.*)\s*=\s*(.*)$
Replace: $2 = $1

演示

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

https://stackoverflow.com/questions/59490888

复制
相关文章

相似问题

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