用Java正则表达式解析BibTeX记录
我必须使用Java正则表达式编写简单的BibTeX解析器。任务有点简化:每个标记值都在引号""
之间,而不是括号{}
。问题是,{}
可以在""
内
我试图从整个字符串文件中剪切单个记录,例如,我想将@book{...}
作为字符串。问题是,最后一个标记后面不能有逗号,所以它可以以:author = "john"}
结尾
我尝试过@\w*\{[\s\S]*?\}
,但如果在""
之间的任何标记值中有}
,它就会停止。也不能保证}
会在单独的行中,它可以直接在最后一个标记值之后(也可能不会以"
结尾,因为它可以是整数)
你能帮我吗
# 1 楼答案
我发现了一个黑客,它可能会帮助有同样问题的人:在}符号后必须有新行字符。如果值的结尾仅为“(}符号不结束任何值),则正则表达式末尾的[\r\n]就足够了