我有一组InDesign文档,其中包含以下格式的记录 -
{item_id}. {item_text} [{tags}] (options)
{item_id}. {item_text} [{tags}] (options)
{item_id}. {item_text} [{tags}] (options)
其中item_id是整数id, item_text由(多行文本块)组成, 标签由单行文本块组成,标签在记录中是可选的,即它们可能存在或不存在。
所以,现在选择1组项目(包括id,text,tags,options)我正在尝试以下正则表达式:
item = '(([0-9])+\\.\\s+)(\\s|.|\\r)*?(?=[0-9]+\\.\\s)'
item_text = '[0-9]+\\.\\s+((.|\\r|\\s)*)*?(?=\\[(.)*\\])'
tags = '\\[((.)*)\\]'
这里,我们在item_text中提取组1,标记正则表达式以获取所需数据。
所以,现在有了这个,我能够正确获得前n-1条记录,但最后一条记录没有被选中 因为它无法为最后一条记录找到以下id块,即项目的正则表达式的这一部分 - (?= [0-9] + \。\ s)
有人可以建议一个更好的正则表达式来捕获所有这些记录,包括最后一个。 [我们在forDesign脚本的extendcript中使用这些regexp,因此在应用程序中可以获得对Positive,Negative Lookbehinds,Lookaheads的支持。]