如何用Java中的关键字 - 值对和{}以及换行符解析文件?

aph*_*hex 2 java regex

在一个文件中,我有一些变量存储如下:

author = {Some Author},
link = {some link},
text = { bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla},
...
Run Code Online (Sandbox Code Playgroud)

一些变量在多行上.

之后我需要将每个String条目吐入键和值,但这不是问题.我到目前为止:

\\S+\\s*[=][{]\\s*\\S*[},]
Run Code Online (Sandbox Code Playgroud)

对我来说工作正常的解决方案是:

(\w+)\s*=\s*\{(.*?)\}
Run Code Online (Sandbox Code Playgroud)

\\S+\\s*[=]\\s*[{].*[},]
Run Code Online (Sandbox Code Playgroud)

the*_*ike 6

你的文章并不明显,但这看起来像一个bibtex文件.如果是,则括号可以在大括号内出现,这意味着您的语言不是"常规",并且不能通过正则表达式(例如您提供的语言)来描述.

如果没有,那么你想要的东西

(\w+)\s*=\s*\{(.*?)\}
Run Code Online (Sandbox Code Playgroud)

但编写解析器可能是解决问题最可敬的方法.如果它是bibtex你正在解析,一个开源Java书目管理器(如Jabref)可能会给你一些关于构建更健壮的东西的想法.