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

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

  •  
  •   iamhrh2 · 2023-07-30 10:28:03 +08:00 · 1557 次点击
    这是一个创建于 459 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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  
       2023-07-30 11:41:17 +08:00
    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  
       2023-07-30 11:46:44 +08:00
    paopjian
        3
    paopjian  
       2023-07-30 12:12:23 +08:00
    这种逻辑合并,把空格当做分隔符处理表格可以吗
    28Sv0ngQfIE7Yloe
        4
    28Sv0ngQfIE7Yloe  
       2023-07-30 12:14:42 +08:00
    我觉得有比正则更好的方案
    iamhrh2
        5
    iamhrh2  
    OP
       2023-07-30 12:39:58 +08:00
    @Morii 求方法。别的软件也行?
    iamhrh2
        6
    iamhrh2  
    OP
       2023-07-30 12:49:57 +08:00
    @tjxwork #1
    这个没看懂。EMEDITOR 能实现吗或是别的软件能实现也行。可有偿
    tjxwork
        7
    tjxwork  
       2023-07-30 13:02:11 +08:00
    @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  
       2023-07-30 13:04:53 +08:00
    @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  
       2023-07-30 13:06:47 +08:00
    iamhrh2
        10
    iamhrh2  
    OP
       2023-07-30 14:03:34 +08:00
    @tjxwork #9 确实怪。我这里面还只是示例。还有些特珠符号没放上去。刚弄半天没弄好。方便加下 Q 吗? 35872693 。。有偿只是一点心意。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2474 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:02 · PVG 08:02 · LAX 17:02 · JFK 20:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.