我正在提醒應用程序,我希望能夠支持iCalender導入。這就是爲什麼我想能夠提取事件。這是一個事件的iCalender事件的基本格式:正則表達式匹配2個重複值之間的所有內容
BEGIN:VEVENT
......
......
END:VEVENT
所有這些事件都是在一個文件中,所以我將有一個大名單如下:
BEGIN:VEVENT
......
......
END:VEVENT
BEGIN:VEVENT
......
......
END:VEVENT
這些事件將有一個起始日期和結束日期
BEGIN:VEVENT
......
DTSTART;VALUE=DATE:20160402
DTEND;VALUE=DATE:20160403
......
END:VEVENT
當試圖提取事件時,它並不總是相同的格式。開始日期和結束日期可以在其他某些字段之前或之後。
目前我有:
/BEGIN:VEVENT[\s\S]*?DTSTART;VALUE=DATE:20160402[\s\S]*?END:VEVENT/
然而,這只是事件本身不匹配,它的BEGIN:VEVENT
第一場比賽相匹配,匹配的一切,直到日期,然後在下面的END:VEVENT
完成比賽。
因此,在列表中的其他事件中,嘗試匹配它們的一些事件包括許多其他事件。有沒有一種方法可以匹配DTSTART;VALUE=DATE:
,只有前一個最近的BEGIN:VEVENT
和以下END:VEVENT
才能提取當天的單個事件?
好吧,這裏是 - https://regex101.com/r/oE6bB5/2 –
不,我不能弄明白,我在正則表達式上很缺乏經驗,哇,非常感謝! – danbeggan