【发布时间】:2014-02-10 14:27:13
【问题描述】:
我正在尝试使用 PHP 中的正则表达式匹配文档的多行。我知道 \s 选项,但不知何故我无法找出正确的正则表达式(使用在线正则表达式测试工具)。
该文件是一个 iCal 文件,如下所示:
BEGIN:VEVENT
LAST-MODIFIED:20140203T092537Z
CREATED:20140101T161157Z
DTSTART:20140220T150000Z
DTSTAMP:20140203T092537Z
DTEND:20140220T170000Z
SUMMARY:Summary of Event
UID:appointment_27140
END:VEVENT
BEGIN:VEVENT
LAST-MODIFIED:20140203T092537Z
CREATED:20140101T161157Z
DTSTART:20140221T070000Z
DTSTAMP:20140203T092537Z
DTEND:20140221T130000Z
SUMMARY:Event 2
UID:appointment_27135
LOCATION:TINF11B2
END:VEVENT
如果事件摘要中包含某些关键字,我想匹配整个事件(从 BEGIN:EVENT 到 END:EVENT)。
我认为匹配上述 iCal 中第二个事件的正则表达式看起来类似于:
/BEGIN:VEVENT(.*)Event 2(.*)END:VEVENT/s
【问题讨论】:
-
为什么不使用 iCal 解析器或类,以便您可以直接使用您感兴趣的领域?
-
这只是一个小的 php 脚本,它修复了我的大学日历中的一个错误。有了这个扩展,它还应该能够过滤掉某些讲座。它实际上只是删除了原始 iCal 中的几个事件。我认为不需要使用 iCal 解析器,因为我并没有真正尝试从 iCal 中获取信息/大量修改 iCal