V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jsjcjsjc

这个可以用正则表达式做到吗?GPT 聊了半天了

  •  
  •   jsjcjsjc · Feb 22, 2024 · 3483 views
    This topic created in 805 days ago, the information mentioned may be changed or developed.

    想把标记字符 mark123 之间的回车删除 比如原始样本:

    mark123
    test
    test
    test
    test
    test
    test
    mark123
    test
    mark123
    mark123
    mark123
    test
    test
    mark123
    mark123
    

    删除编辑 mark123 之前的回车,当然 test 是随机字符,但 mark123 是确定的

    mark123testtesttesttesttesttest
    mark123test
    mark123
    mark123
    mark123testtest
    mark123
    mark123
    

    感谢

    7 replies    2024-02-23 11:46:07 +08:00
    nagisaushio
        1
    nagisaushio  
       Feb 22, 2024
    python

    re.sub('\s(?!mark123)', '', s)
    NoOneNoBody
        2
    NoOneNoBody  
       Feb 22, 2024
    你的编辑器支持多行正则就可以了
    jsjcjsjc
        3
    jsjcjsjc  
    OP
       Feb 22, 2024
    @NoOneNoBody notepad++可以吗?
    NoOneNoBody
        4
    NoOneNoBody  
       Feb 22, 2024
    @jsjcjsjc #3
    没用过,一般都可以,主要是 windows 格式的文本的话要注意,换行符是两个字符,单纯\n 是不行的,要\n\r
    zhanglintc
        5
    zhanglintc  
       Feb 23, 2024
    光是 notepad++应该是不行的
    chaosuxiong
        6
    chaosuxiong  
       Feb 23, 2024   ❤️ 2
    可以分两步做
    1.去掉所有换行
    2.按 mark123 分割换行
    (mark123)(((?!mark123).)*)
    $1$2\n
    zhanglintc
        7
    zhanglintc  
       Feb 23, 2024
    @chaosuxiong #6 "1.去掉所有换行" => 这个思路好
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   991 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 18:46 · PVG 02:46 · LAX 11:46 · JFK 14:46
    ♥ Do have faith in what you're doing.