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

一个正则表达式写不出来

  •  
  •   liuxu · Feb 22, 2019 · 3959 views
    This topic created in 2633 days ago, the information mentioned may be changed or developed.
    To: =?GB2312?B?s8LR9A==?= , =?GB2312?B?0e7V8buq?= , =?GB2312?B?ts69qNOi?= , =?GB2312?B?wO7RxcX0?= , =?GB2312?B?wfXX07vU?= Cc: =?GB2312?B?wfXA2g==?= , =?GB2312?B?wfW7qNHT?= Subject: =?GB2312?B?u9i4tDogu9i4tDogcGPXqNawvNK9zMrTxrVidWc=?=

    如何匹配 To 到 Cc:之间的字符串,Cc:有时候可能不存在,所以不能用 To:( =\?.*\?= )Cc:,想了半天没想出来,求解答,谢谢
    12 replies    2019-02-22 19:26:28 +08:00
    xiangyuecn
        1
    xiangyuecn  
       Feb 22, 2019   ❤️ 1
    邮件头格式还是蛮复杂的,可能跨多行

    To: ([^\r\n]+(?:\r\n\s+[^\r\n]+)*)
    Telegram
        2
    Telegram  
       Feb 22, 2019   ❤️ 1
    注意冒号:

    =\?[^:]*\?=
    Telegram
        3
    Telegram  
       Feb 22, 2019   ❤️ 1
    从 To:开始,?=结尾,中间不能含有冒号:,问题解决
    laoyur
        4
    laoyur  
       Feb 22, 2019   ❤️ 1
    To: (?:\s*=\?.+?\?=\s*,?)+
    xiangyuecn
        5
    xiangyuecn  
       Feb 22, 2019
    \r\n 有点问题。。。不研究了
    Raisu
        6
    Raisu  
       Feb 22, 2019 via Android
    用 split
    lastpass
        7
    lastpass  
       Feb 22, 2019 via Android
    用 antlr
    liuxu
        8
    liuxu  
    OP
       Feb 22, 2019
    @laoyur 多谢大佬,试过这个,最后,?一直没想到
    bzw875
        9
    bzw875  
       Feb 22, 2019
    str = str.split('fuck:')[0]
    str = str.replace('To', '')
    junkman
        10
    junkman  
       Feb 22, 2019   ❤️ 1
    To:( =\?.*\?= )(Cc|Subject):

    NOTE: Assume `Subject' always present

    see: https://regex101.com/r/l7xxeN/2/
    junkman
        11
    junkman  
       Feb 22, 2019
    Only one addressee case failed :-(
    bzw875
        12
    bzw875  
       Feb 22, 2019
    str = str.split('Cc:')[0];
    str = str.replace('To', '');
    不小心写错了,其实代码可以实现的地方,别用正则表达式,可读性差
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   904 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 20:45 · PVG 04:45 · LAX 13:45 · JFK 16:45
    ♥ Do have faith in what you're doing.