正则表达式:匹配直到与工作流应用程序进行下一次匹配
Regex: Match until next match with Workflow app
我正在尝试使用 Workflow iOS 应用来分离和处理如下文本:
Page 1, Highlight (Yellow):
Content: "blah blah blah"
"blah blah blah"
Page 111, Highlight (Yellow):
Content: "more blah"
Page 524, Note (Yellow):
Blah blah
Blah blah Blah
Page 6, Highlight (Yellow):
Content: "blah"
我想按页码分隔每个文本块,这样上面的内容将产生 4 个文本块。我想不出 "split text" 的方法,因为我不能使用换行符或特定字符。
iOS 上的工作流有一个功能,您可以在其中通过正则表达式进行分组。这似乎行得通。我可以编写一个获取 "Page 1" 的正则表达式,但我不知道如何将匹配扩展到下一个 "Page XXX" 实例。我想也许是这样的,但它不起作用:
(Page)+ \w*[\s\S]*(?=\n.*?Page)
希望得到任何提示或指导。
编辑:根据 this reddit thread,工作流程需要 ICU 正则表达式语法。这应该对其他人有帮助。
这就是答案:
(?sm)^Page.*?(?=^Page|\Z)
(?s)^Page.*?(?=^Page|\Z)
(?s)
使得 .
将匹配新行字符
然后它查找以 "Page" 开头的字符串并捕获所有内容,直到以 "Page" 开头的下一行或最后一条记录。
我正在尝试使用 Workflow iOS 应用来分离和处理如下文本:
Page 1, Highlight (Yellow):
Content: "blah blah blah"
"blah blah blah"
Page 111, Highlight (Yellow):
Content: "more blah"
Page 524, Note (Yellow):
Blah blah
Blah blah Blah
Page 6, Highlight (Yellow):
Content: "blah"
我想按页码分隔每个文本块,这样上面的内容将产生 4 个文本块。我想不出 "split text" 的方法,因为我不能使用换行符或特定字符。
iOS 上的工作流有一个功能,您可以在其中通过正则表达式进行分组。这似乎行得通。我可以编写一个获取 "Page 1" 的正则表达式,但我不知道如何将匹配扩展到下一个 "Page XXX" 实例。我想也许是这样的,但它不起作用:
(Page)+ \w*[\s\S]*(?=\n.*?Page)
希望得到任何提示或指导。
编辑:根据 this reddit thread,工作流程需要 ICU 正则表达式语法。这应该对其他人有帮助。
这就是答案:
(?sm)^Page.*?(?=^Page|\Z)
(?s)^Page.*?(?=^Page|\Z)
(?s)
使得 .
将匹配新行字符
然后它查找以 "Page" 开头的字符串并捕获所有内容,直到以 "Page" 开头的下一行或最后一条记录。