代码之家  ›  专栏  ›  技术社区  ›  Joshua Enfield Daij-Djan

正则表达式-文本内部不匹配?

  •  0
  • Joshua Enfield Daij-Djan  · 技术社区  · 16 年前

    BEGIN:VEVENT
    UID:944f660b-01f8-4e09-95a9-f04a352537d2
    ORGANIZER;CN=******
    DTSTART;TZID="America/Chicago":20100802T080000
    DTEND;TZID="America/Chicago":20100822T170000
    STATUS:CONFIRMED
    CLASS:PRIVATE
    X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
    TRANSP:OPAQUE
    X-MICROSOFT-DISALLOW-COUNTER:TRUE
    DTSTAMP:20100802T212130Z
    SEQUENCE:0
    END:VEVENT
    
    BEGIN:VEVENT
    UID:aa132e2b-8a8d-4ffc-9e54-b75249e78c72
    RRULE:FREQ=DAILY;COUNT=12;INTERVAL=1
    SUMMARY:***********
    X-ALT-DESC;FMTTYPE=text/html:<html><body><div style='font-family:Times New R
     oman\; font-size: 12pt\; color: #000000\;'></div></body></html>
    LOCATION:Map Room
    ORGANIZER;CN=*********
    DTSTART;TZID="America/Chicago":20100730T080000
    DTEND;TZID="America/Chicago":20100730T170000
    STATUS:CONFIRMED
    CLASS:PUBLIC
    X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
    TRANSP:OPAQUE
    X-MICROSOFT-DISALLOW-COUNTER:TRUE
    DTSTAMP:20100727T025231Z
    SEQUENCE:0
    EXDATE;TZID="America/Chicago":20100810T080000
    EXDATE;TZID="America/Chicago":20100807T080000
    BEGIN:VALARM
    ACTION:DISPLAY
    TRIGGER;RELATED=START:-PT5M
    DESCRIPTION:*********
    END:VALARM
    END:VEVENT
    

    我需要分析出开始和结束的时间。我有一个比较函数,它确定传入的事件是否在这两个时间之间。由于计算时间的复杂性增加,我计划不支持重复序列。我想安全起见,确保我的密码 只读取第一个事件作为匹配项,而不读取第二个事件。 单行选项 :

    BEGIN:VEVENT.+?
    DTSTART;.+?([0-9]{8})T([0-9]{6})
    DTEND;.+?([0-9]{8})T([0-9]{6}).+?
    END:VEVENT
    

    FREQ= 在BEGIN:VEVENT和DTSTART之间。但是我不知道怎么做。我在想是否有人能帮我?

    !? 操作人员 没有成功。

    2 回复  |  直到 16 年前
        1
  •  1
  •   FrustratedWithFormsDesigner    16 年前

    要编写一个正则表达式来匹配你需要的东西是很困难的 不要 做 做 包含 FREQ= !? ,因为也许它很容易修复。。。另外,我假设这是在Objective-C中,我猜您使用的环境确实支持 !?

    更新

    BEGIN:VEVENT.+?
    (?<!FREQ=.+)DTSTART;.+?([0-9]{8})T([0-9]{6})
    DTEND;.+?([0-9]{8})T([0-9]{6}).+?
    END:VEVENT
    
        2
  •  1
  •   Doug    16 年前

    为什么不使用PHP iCalendar解析器呢?

    http://www.phpclasses.org/browse/file/16660.html