2012-05-26 3 views
2

Я хотел бы разобрать следующую строку bibtex или, может быть, целый файл .bib с помощью php или javascript.Parse Bibtex files

Любые предложения?

Строка выглядит следующим образом:

@article{Sng:2010:PMW:1750585.1750678, 
author = {Sng, Colin T. S. and Manlove, David F.}, 
title = {Popular matchings in the weighted capacitated house allocation problem}, 
journal = {J. of Discrete Algorithms}, 
issue_date = {June, 2010}, 
volume = {8}, 
number = {2}, 
month = jun, 
year = {2010}, 
issn = {1570-8667}, 
pages = {102--116}, 
numpages = {15}, 
url = {http://dx.doi.org/10.1016/j.jda.2008.11.008}, 
doi = {10.1016/j.jda.2008.11.008}, 
acmid = {1750678}, 
publisher = {Elsevier Science Publishers B. V.}, 
address = {Amsterdam, The Netherlands, The Netherlands}, 
keywords = {Maximum popular matching, Polynomial-time algorithm, Popular matching  problem, Priorities, Strict preference lists}, 
} 

ответ

7

Я не могу точно вспомнить синтаксис BibTeX, но я хотел бы предложить, чтобы преобразовать синтаксис, чтобы сделать это, оформленной JSON.parse, как это:

var bibjson = bibtex.replace(/(\w+)\s*=\s*\{/g,"\"$1\": \"") 
      .replace(/\}(?=\s*[,\}])/g,"\"") 
      .replace(/@(\w+)\s*\{([^,]*)/,"{\"$1\": \"$2\""); 
var bibobj = JSON.parse(bibjson); 
+0

Спасибо за ваше время. Я считаю, что в вашем коде есть ошибка. Я не могу запустить его. В первой строке есть ошибка. 'Ошибка анализа: синтаксическая ошибка, неожиданная '/', ожидающая ')' в /homepages/26/d94605010/htdocs/lz/php/index.php(153): eval() 'd код в строке 21' – glarkou

+0

Я дал вы используете Javascript, а не PHP. – MaxArt

+0

Можно ли положить его на jsfiddle? – glarkou