【发布时间】:2011-08-24 12:15:13
【问题描述】:
我正在尝试将 bibtex 文件读入我的 JavaScript 脚本。 用于解析文件的正则表达式为:
/(.*)\s*=\s*[{"'](.*|.*\s+.*|.*\s+.*\s+.*|.*\s+.*\s+.*\s+.*|.*\s+.*\s+.*\s+.*\s+.*)[}"'],?/g
这可以按我的意愿工作:
@Article{journals/aim/Sloman99,
title = "Review of Affective Computing",
author = "Aaron Sloman",
journal = "AI Magazine",
year = "1999",
number = "1",
volume = "20",
url = "http://dblp.uni-trier.de/db/journals/aim/aim20.html#Sloman99",
pages = "127--133",
}
它给了我很好的 key.value 对,例如:“author : Aaron Sloman”。
这不是:
@Article{journals/aim/Sloman99,
title = "Review of Affective Computing",
author = "Aaron
S
l
o
m
a
n",
journal = "AI Magazine",
year = "1999",
number = "1",
volume = "20",
url = "http://dblp.uni-trier.de/db/journals/aim/aim20.html#Sloman99",
pages = "127--133",
}
只是省略了作者。
那么我怎样才能创建一个正则表达式来匹配具有尽可能多的换行符的条目(不仅与“.*\s+”的重复一样多),直到它遇到一个“或一个}?
【问题讨论】:
-
您需要一个比
.*\s+.*\s+.*\s+.*\s+.*更大的子表达式来匹配换行符产生的所有空格。
标签: javascript regex parsing