出于超出本文范围的原因,我正在构建一个简单的bibtex解析器。一些bibtex字段由一个大括号分隔,而其他字段由两个大括号分隔。大括号也是字段的有效内容。你知道吗
我知道一个字符串对应一个字段,格式如下:
fieldName1 = {{ content }},\n -> content
fieldName2 = { content },\n -> content
fieldName3 = { {[}content,] },\n -> {[}content,]
使用此模式,我可以恢复内容:
re.compile(r"(?P<name>[\w-]+?)[\s]*=[\s]*({(?P<content>.*)})", flags=re.IGNORECASE|re.DOTALL)
但如果该字段使用双大括号,则它将包含{和}。你知道吗
Is there an easier way to remove them than to test [0]=='{' and [-1]=='}'
请尝试以下正则表达式:
在我的测试中,它和你的3个样本都匹配。你知道吗
有关工作示例(包含上述正则表达式的测试),请参见https://regex101.com/r/Gy8IWu/1
上面的regex测试站点提供了关于特定 正在测试的正则表达式的部分和匹配的部分。你知道吗
编辑
根据您的评论,匹配所有3个变体的正则表达式是:
请参见更新的示例:https://regex101.com/r/Gy8IWu/2
相关问题 更多 >
编程相关推荐