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

请教一个关于正则表达式的问题

  •  
  •   superchijinpeng · 2018-04-22 21:41:41 +08:00 · 1683 次点击
    这是一个创建于 2435 天前的主题,其中的信息可能已经有所发展或是发生改变。

    给定一字符串:abc_de_fghi__pzf___56_

    请问如何使用正则匹配:abc de fghi pzf 56 ?

    8 条回复    2018-04-24 02:54:50 +08:00
    Kaciras
        1
    Kaciras  
       2018-04-22 22:06:46 +08:00
    [0-9a-z]+
    zgx030030
        2
    zgx030030  
       2018-04-22 22:07:14 +08:00 via iPhone
    [a-zA-Z0-9]+
    还是我想简单了?😄
    ThirdFlame
        3
    ThirdFlame  
       2018-04-22 22:10:24 +08:00   ❤️ 1
    给这个 abc_de_fghi__pzf___56_ 输出这个 abc de fghi pzf 56 ????
    难道不是 replce ?还要用 re ?
    superchijinpeng
        4
    superchijinpeng  
    OP
       2018-04-22 22:23:10 +08:00
    @Kaciras
    @zgx030030
    @ThirdFlame

    不好意思是我没有表述清楚,我本意是给定一个字符串:_abc_de_fghi__pzf___56_ (_第一个_第二个_第三__第四个___第五个_) ,如何取得这五个字串?
    ifaii
        5
    ifaii  
       2018-04-22 22:41:02 +08:00
    r = '_abc_de_fghi__pzf___56_'
    [ x for x in r.split('_') if x != '' ]

    L3 的方法更快了,要啥正则
    wevsty
        6
    wevsty  
       2018-04-22 22:44:35 +08:00
    正则的话这样写就行了 [a-zA-Z0-9]+[^_]+
    不过说实话针对这种字符串,直接 split 更快。
    Arnie97
        7
    Arnie97  
       2018-04-24 02:53:44 +08:00 via Android
    s.replace('_', '').split()
    Arnie97
        8
    Arnie97  
       2018-04-24 02:54:50 +08:00 via Android
    楼上笔误
    s.replace('_', ' ').split()
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:39 · PVG 18:39 · LAX 02:39 · JFK 05:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.