V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iamhrh2
V2EX  ›  正则表达式

上下两行内容合并正则有办法能实现吗

  •  
  •   iamhrh2 · 272 天前 · 991 次点击
    这是一个创建于 272 天前的主题,其中的信息可能已经有所发展或是发生改变。
    em 正则有办法能实现吗,或是多步骤能否实现

    效果前
    〖 BH 〗 AAA 〖〗〖〗〖〗〖〗 0.020 〖〗-0.017
    〖 BH 〗〖〗〖〗〖〗〖〗(0.027)〖〗(0.015)
    〖 BH 〗 BBB 〖〗〖〗〖〗〖〗-0.225**〖〗 0.018**
    〖 BH 〗〖〗〖〗〖〗〖〗(0.113)〖〗(0.009)
    〖 BH 〗 CCC 〖〗-1.087***〖〗 0.413***〖〗〖〗-0.966***〖〗 1.033***
    〖 BH 〗〖〗(0.147)〖〗(0.081)〖〗〖〗(0.175)〖〗(0.323)

    效果后
    〖 BH 〗 AAA 〖〗〖〗〖〗〖〗 0.020(0.027)〖〗-0.017(0.015)
    〖 BH 〗 BBB 〖〗〖〗〖〗〖〗-0.225**(0.113)〖〗 0.018**(0.009)
    〖 BH 〗 CCC 〖〗-1.087***(0.147)〖〗 0.413***(0.081)〖〗〖〗-0.966***(0.175)〖〗 1.033***(0.323)
    10 条回复    2023-07-30 14:03:34 +08:00
    tjxwork
        1
    tjxwork  
       272 天前
    https://regex101.com/

    正则表达式
    (.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})
    .*?(\(.*?\)).*?(\(.*?\))
    (.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})
    .*?(\(.*?\)).*?(\(.*?\))
    (.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})
    .*?(\(.*?\)).*?(\(.*?\)).*?(\(.*?\)).*?(\(.*?\))

    换行部分自己换成"\n"



    测试文本
    〖 BH 〗 AAA 〖〗〖〗〖〗〖〗 0.020 〖〗-0.017
    〖 BH 〗〖〗〖〗〖〗〖〗(0.027)〖〗(0.015)
    〖 BH 〗 BBB 〖〗〖〗〖〗〖〗-0.225 〖〗 0.018
    〖 BH 〗〖〗〖〗〖〗〖〗(0.113)〖〗(0.009)
    〖 BH 〗 CCC 〖〗-1.087 〖〗 0.413 〖〗〖〗-0.966 〖〗 1.033
    〖 BH 〗〖〗(0.147)〖〗(0.081)〖〗〖〗(0.175)〖〗(0.323)

    替换
    $1$2$5$3$4$6\n$7$8$11$9$10$12\n$13$14$21$15$16$22$17$18$23$19$20$24

    结果
    〖 BH 〗 AAA 〖〗〖〗〖〗〖〗 0.020(0.027) 〖〗-0.017(0.015)
    〖 BH 〗 BBB 〖〗〖〗〖〗〖〗-0.225(0.113)〖〗 0.018(0.009)
    〖 BH 〗 CCC 〖〗-1.087(0.147)〖〗 0.413(0.081)〖〗〖〗-0.966(0.175)〖〗 1.033(0.323)

    来,V 我 50
    tjxwork
        2
    tjxwork  
       272 天前
    paopjian
        3
    paopjian  
       272 天前
    这种逻辑合并,把空格当做分隔符处理表格可以吗
    Morii
        4
    Morii  
       272 天前
    我觉得有比正则更好的方案
    iamhrh2
        5
    iamhrh2  
    OP
       272 天前
    @Morii 求方法。别的软件也行?
    iamhrh2
        6
    iamhrh2  
    OP
       272 天前
    @tjxwork #1
    这个没看懂。EMEDITOR 能实现吗或是别的软件能实现也行。可有偿
    tjxwork
        7
    tjxwork  
       272 天前
    @iamhrh2

    VSCode
    Ctrl+H
    Alt+R 启用正则

    分别粘贴

    查找
    (.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})\n.*?(\(.*?\)).*?(\(.*?\))\n(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})\n.*?(\(.*?\)).*?(\(.*?\))\n(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})\n.*?(\(.*?\)).*?(\(.*?\)).*?(\(.*?\)).*?(\(.*?\))

    替换
    $1$2$5$3$4$6\n$7$8$11$9$10$12\n$13$14$21$15$16$22$17$18$23$19$20$24
    tjxwork
        8
    tjxwork  
       272 天前
    @iamhrh2


    EmEditor


    查找,点 “>” 启用多行
    (.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})
    .*?(\(.*?\)).*?(\(.*?\))
    (.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})
    .*?(\(.*?\)).*?(\(.*?\))
    (.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})(.*?)(-?\d.\d{3,})
    .*?(\(.*?\)).*?(\(.*?\)).*?(\(.*?\)).*?(\(.*?\))


    替换为
    \1\2\5\3\4\6
    \7\8\11\9$10$12
    $13$14$21$15$16$22$17$18$23$19$20$24

    EmEditor 这替换怪得很……
    tjxwork
        9
    tjxwork  
       272 天前
    iamhrh2
        10
    iamhrh2  
    OP
       272 天前
    @tjxwork #9 确实怪。我这里面还只是示例。还有些特珠符号没放上去。刚弄半天没弄好。方便加下 Q 吗? 35872693 。。有偿只是一点心意。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2933 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:59 · PVG 15:59 · LAX 00:59 · JFK 03:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.