我遇到的问题是,我只想使用capture组提取Bibtex库文件的引号和标题。
我的数据文件是这样的。
@Wang2017,作者= {Wang,Yunsen和Kogan,Alexander},file ={:/2017/2017{}设计隐私-保护基于blockchain的会计信息Systems.pdf:pdf},关键词={会计信息系统,区块链,连续审计},标题={{设计隐私-保护基于Blockchain的会计信息系统}},年份= {2017} }
在提取cite键时,我使用了以下正则表达式:
@\w+{(\w:-+)
在提取标题时,我使用了以下正则表达式: title ={(.*?)}}
两样都有用。但是我不能将这两个命令合并成一个regex命令,因此引号键是捕获组1,标题是捕获组2。
您可以使用以下链接找到示例文件和已经使用的regex命令。
https://regex101.com/r/v4cIe6/1
我的预期结果将是一条命令,立即提取引号、键和标题,并将其放入不同的捕获组。
发布于 2019-07-15 16:20:08
如果支持负前瞻性,则可以重复所有不以标题开头的行。如果行匹配,则匹配空间、=、空格和{{,并在捕获组2中捕获标题。
@\w+{([\w:-]+).*(?:\r?\n(?!title\b).*)*\ntitle = {{(.*?)}}解释
@\w+{([\w:-]+)匹配引号键的模式.*匹配除换行符以外的任何字符(?:非捕获群\r?\n(?!title\b).*匹配断言字符串的换行符不以标题开头
)*关闭非捕获组并重复0+时间\r?\ntitle =匹配换行符,然后匹配title ={{(.*?)}}匹配标题的模式,在第2组中捕获{{和}}之间的匹配https://stackoverflow.com/questions/57043660
复制相似问题