首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

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

  •  
  •   feilong · 238 天前 · 634 次点击
    这是一个创建于 238 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    例如

    aaa bbb  
    ccc ddd  
    aaa eee  
    ccc fff  
    

    替换为

    ccc bbb  
    aaa ddd  
    ccc eee  
    aaa fff  
    

    大概是在这个意思

    8 回复  |  直到 2018-08-28 17:05:17 +08:00
        1
    feilong   238 天前
    补充一下,不要先把 aaa 替换成别的再替换回来这种
        2
    F0nebula   238 天前
    s/(\w+) (\w+)/\2 \1/g
        3
    imn1   238 天前
    @F0nebula
    他的需求,互换字串不是同一行的
        4
    F0nebula   238 天前
    @imn1 #3 啊抱歉喵 没看清楚
        5
    feilong   238 天前
    @imn1 嗯,字符串不在一行的

    之前是三次替换,先把 aaa 替换成别的,再把 ccc 替换成 aaa,最后再把 aaa 换回来,但是我感觉三次替换有点太蠢了,所以问一问大家这种有没有办法一次替换完成
        6
    ys0290   238 天前 via iPhone
    不暂存数据,就要暂存数据的位置
        7
    feilong   238 天前
    @ys0290 于是说一个正则表达式可以实现么?我知道一般的话可以像 @F0nebula 那样,但是这种情况如何解决?
        8
    HiHi   238 天前 via iPhone
    感觉一个正则不行,vim 上 我是用插件解决此类需求了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2635 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 14:43 · PVG 22:43 · LAX 07:43 · JFK 10:43
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1