求一个能够互换两段文本的正则表达式

2018-08-28 15:07:02 +08:00
 feilong

求一段正则表达式,能够互换两段文本,不知道能否实现

例如

aaa bbb  
ccc ddd  
aaa eee  
ccc fff  

替换为

ccc bbb  
aaa ddd  
ccc eee  
aaa fff  

大概是在这个意思

1510 次点击
所在节点    问与答
8 条回复
feilong
2018-08-28 15:09:26 +08:00
补充一下,不要先把 aaa 替换成别的再替换回来这种
F0nebula
2018-08-28 15:53:41 +08:00
s/(\w+) (\w+)/\2 \1/g
imn1
2018-08-28 15:56:41 +08:00
@F0nebula
他的需求,互换字串不是同一行的
F0nebula
2018-08-28 15:59:28 +08:00
@imn1 #3 啊抱歉喵 没看清楚
feilong
2018-08-28 16:33:18 +08:00
@imn1 嗯,字符串不在一行的

之前是三次替换,先把 aaa 替换成别的,再把 ccc 替换成 aaa,最后再把 aaa 换回来,但是我感觉三次替换有点太蠢了,所以问一问大家这种有没有办法一次替换完成
ys0290
2018-08-28 16:48:31 +08:00
不暂存数据,就要暂存数据的位置
feilong
2018-08-28 16:57:49 +08:00
@ys0290 于是说一个正则表达式可以实现么?我知道一般的话可以像 @F0nebula 那样,但是这种情况如何解决?
HiHi
2018-08-28 17:05:17 +08:00
感觉一个正则不行,vim 上 我是用插件解决此类需求了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/483964

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX