在一个文件中,我有一些变量存储如下:
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)
你的文章并不明显,但这看起来像一个bibtex文件.如果是,则括号可以在大括号内出现,这意味着您的语言不是"常规",并且不能通过正则表达式(例如您提供的语言)来描述.
如果没有,那么你想要的东西
(\w+)\s*=\s*\{(.*?)\}
Run Code Online (Sandbox Code Playgroud)
但编写解析器可能是解决问题最可敬的方法.如果它是bibtex你正在解析,一个开源Java书目管理器(如Jabref)可能会给你一些关于构建更健壮的东西的想法.