我有一个大文本文件,其中包含 TextWrangler 中的一些注释,我想用 Regex 解析并将匹配项写入 CSV 文件以进行 MySQL 导入。这是一个示例源:
ARCHIVE
02.09.2014 22:35
title1
content
content
content
content
30.08.2014 18:13
title2
content
content with tab
content with tab
content
...
more notes as above
...
每个注释都以日期开头,后面是回车符,然后是标题和一些内容行。我目前正在 TW Find 对话框中使用以下正则表达式进行测试,并检查 Grep 以获取每个注释的日期、标题和内容块:
\r(\d\d\.\d\d\.\d\d\d\d \d\d:\d\d)\s*\r\r(.+)(?s)((?:(?!\r\d\d\.\d\d\.\d\d\d\d \d\d:\d\d\s*\r).)*)
这样做是查找由返回包围的日期,然后捕获标题行,最后捕获后面的所有行,前提是没有遇到另一个日期块。后者使用非捕获负前瞻。在最后一步之前,启用 DOTALL 设置并(?s)
在点元字符中包含返回。
使用 Find 上方的示例源代码适用于第一个注释,但不适用于第二个注释,其中一些行用制表符缩进。TW 显示此错误:
这就是我卡住的地方。谁能给我一个提示?