正则表达式匹配2个重复值之间的所有内容

时间:2016-04-06 14:52:33

标签: javascript regex icalendar

我正在制作提醒申请,我希望能够支持iCalender导入。这就是我希望能够提取事件的原因。这是iCalender中事件的基本格式:

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处完成匹配。< / p>

因此,在某些事件中,试图匹配它们的列表中包括许多其他事件。有没有一种方法可以匹配DTSTART;VALUE=DATE:,只有前一个最接近BEGIN:VEVENT和以下END:VEVENT才能提取当天的单个事件?

0 个答案:

没有答案