所以我试图使用Regex(在AutoIt内部)返回icr文件(基于vCalendar [.vcs]的日历文件)中的每个事件。因此,icr文件中的事件以BEGIN:VEVENT行开头,以END:VEVENT结束。我将文件读取到变量x并用'[n'替换x中的每一个新行,因此RegEx看起来像(BEGIN:VEVENT\[n(?:\[n|[^\[]+)+END:VEVENT)
(开始,一个数字大于0的换行符或字符不等于[和结束]
当我插入像'foo[nBEGIN:VEVENT[ndata[nEND:VEVENT[nbar'
这样的东西时这很好用但是问题就出现了:我有两个测试字符串,上面一个返回一个结果,下面一个不是:
1[nBEGIN:VEVENT[ndata1[nEND:VEVENT[nxxxxxxxxxxx[BEGIN:VEVENT[ndata2[nEND:VEVENT
1[nBEGIN:VEVENT[ndata1[nEND:VEVENT[nxxxxxxxxxxxx[BEGIN:VEVENT[ndata2[nEND:VEVENT
您可以在regex101.com
为自己测试一下答案 0 :(得分:1)
尝试使用此模式,它不会限制VEVENT[n
内的内容:
(BEGIN:VEVENT\[ndata(?:\[n|[^\[])+END:VEVENT)
答案 1 :(得分:0)
对于每个懒得看看评论的人:this是L'我想出的解决方案,我做了一些调整:
(?:BEGIN:VEVENT)\[n(.+?)\[.(?:END:VEVENT)