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

正则提问

  •  
  •   zhuzhuaini · Nov 16, 2019 · 3420 views
    This topic created in 2358 days ago, the information mentioned may be changed or developed.
    现在有这样一个字符串:
    {'JSESSIONID': '29rshpmaj'}
    我想匹配除了{}'以外的字符,即:
    JSESSIONID:29rshpmaj
    目前使用了这样一个正则 [^{}'] 能匹配出除了这三个特殊字符以外的内容,但是匹配数量太多了,我想有没有一条表达式只出一个结果,内容为 JSESSIONID:29rshpmaj
    14 replies    2019-11-16 18:01:39 +08:00
    iNaru
        1
    iNaru  
       Nov 16, 2019
    (?<={)[^{]+(?=})
    zhuzhuaini
        2
    zhuzhuaini  
    OP
       Nov 16, 2019
    @iNaru 不对哦 这样的匹配结果是:'JSESSIONID': '29rshpmaj' 还有单引号哦
    widewing
        3
    widewing  
       Nov 16, 2019 via Android
    你是不是对正则有什么误解啊。。
    jdhao
        4
    jdhao  
       Nov 16, 2019 via Android
    使用 match group 就可以了
    iNaru
        5
    iNaru  
       Nov 16, 2019
    @zhuzhuaini 没办法的,只能分组。(?<={')([^']+)'(:)\s'([^']+)(?='})
    zhuzhuaini
        6
    zhuzhuaini  
    OP
       Nov 16, 2019
    @iNaru 好吧 我用的 python 有这么个字符串想处理,如果不通过正则的话 有什么被的方案吗?谢谢谢谢
    sixway
        7
    sixway  
       Nov 16, 2019
    In [1]: import re

    In [2]: str = "{'JSESSIONID': '29rshpmaj'}"

    In [3]: print(re.sub(r"[?{}']", "", str))
    JSESSIONID: 29rshpmaj
    sixway
        8
    sixway  
       Nov 16, 2019   ❤️ 1
    In [4]: print(re.sub(r"[?{} ']", "", str))
    JSESSIONID:29rshpmaj
    zhuzhuaini
        10
    zhuzhuaini  
    OP
       Nov 16, 2019
    @sixway 感谢 这很完美!
    zhuzhuaini
        11
    zhuzhuaini  
    OP
       Nov 16, 2019
    @pompeii 谢谢 这个手册有空恶补一下
    sixway
        12
    sixway  
       Nov 16, 2019
    @zhuzhuaini #10 不能匹配内容的时候,可以考虑替换内容以外的为空。思维不要那么死板
    ipwx
        13
    ipwx  
       Nov 16, 2019 via Android
    匹配出 group 以后直接丢给 str format 不就行了?
    ipwx
        14
    ipwx  
       Nov 16, 2019 via Android
    '{}:{}'.format(*re.match(...).groups())
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1019 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 18:05 · PVG 02:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.