我将使用正则表达式来解析iCalendar(RFC2445)输入。下面是一个[简化版]的示例,显示了输入的样子:
在第一次匹配中,我期望有两个字段:abc:123和def:456的匹配...
我相信这是新手错误(因为当涉及到正则表达式时,我似乎永远是一个新手...)- 但也许你可以指点我正确的方向?
谢谢!
BEGIN:VEVENT
abc:123
def:456
END:VEVENT
BEGIN:VEVENT
ghi:789
END:VEVENT
我希望获得一个匹配项的数组:每个"外层"匹配项都是每个VEVENT块,而内部匹配项则是每个field:value对。
我尝试了这种变体:
BEGIN:VEVENT\n((?<field>(?<name>\S+):\s*(?<value>\S+)\n)+?)END:VEVENT
但是考虑到上面的输入内容,结果似乎只有每个匹配的VEVENT一个字段,尽管在捕获组上使用了+?:
**Match 1**
field def:456
name def
value 456
**Match 2**
field ghi:789
name ghi
value 789
在第一次匹配中,我期望有两个字段:abc:123和def:456的匹配...
我相信这是新手错误(因为当涉及到正则表达式时,我似乎永远是一个新手...)- 但也许你可以指点我正确的方向?
谢谢!