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

正则问题

  •  
  •   fangwenxue · 2023-04-13 17:06:24 +08:00 · 933 次点击
    这是一个创建于 588 天前的主题,其中的信息可能已经有所发展或是发生改变。
    a = '1411230078111'
    s = '1411230078111ymm_Semm_87d ymm_1411230078111Semm_87d'
    c = 7
    
    • 要求删除 s 里面的 c 但 a 里面的不删除
    • a 在 s 里面的位置是不规则的,上面只是 2 个例子
    8 条回复    2023-04-14 15:12:59 +08:00
    LLaMA2
        1
    LLaMA2  
       2023-04-13 17:26:09 +08:00
    换个思路吧,
    先把 S 中的 A 替换成 S 中不可能出现的字符,例如中文(举个例子),
    然后再替换掉 C,
    接着还原中文为 A,
    完成
    westoy
        2
    westoy  
       2023-04-13 17:27:57 +08:00
    a.join([ item.replace(c, '') for item in s.split(a))
    kissmenow
        3
    kissmenow  
       2023-04-13 17:29:54 +08:00
    问问 gpt
    cheese
        4
    cheese  
       2023-04-13 17:30:18 +08:00
    这个不应该用正则做,直接用语言的替换功能来的更快,一楼说的有道理
    LLaMA2
        5
    LLaMA2  
       2023-04-13 17:34:07 +08:00
    楼主应该是在 linux 中用 sed 操作,sed 是支持正则全局处理,也可以正则替换,我的思路属于能干活,不够洁癖
    googlefans
        6
    googlefans  
       2023-04-13 17:34:21 +08:00
    LLaMA2
        7
    LLaMA2  
       2023-04-13 18:02:23 +08:00
    ```

    echo '1411230078111ymm_Semm_87d ymm_1411230078111Semm_87d' | sed 's/1411230078111/绝不会是中文 /g' | sed 's/7//g' | sed 's/绝不会是中文 /1411230078111/g'


    1411230078111ymm_Semm_8d ymm_1411230078111Semm_8d

    ```
    Pipecraft
        8
    Pipecraft  
       2023-04-14 15:12:59 +08:00
    1 楼方法还是好,如果用正则,可以像下面这么写。

    ```
    '1411230078111ymm_Semm_87d ymm_1411230078111Semm_87d'.replace(/(1411230078111)|(7)/g, '$1')
    ```
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1175 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:11 · PVG 02:11 · LAX 10:11 · JFK 13:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.