Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式换行符和bibtex解析_Javascript_Regex_Parsing - Fatal编程技术网

JavaScript正则表达式换行符和bibtex解析

JavaScript正则表达式换行符和bibtex解析,javascript,regex,parsing,Javascript,Regex,Parsing,我正在尝试将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 Sloma

我正在尝试将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+”),直到它遇到一个“或a}?

我知道人们喜欢使用正则表达式来解析标记,这似乎是一种时尚。。。像lady gaga,或者有趣的Dip。但是如果你想有效地解析标记,你应该使用或者编写一个解析器

为什么,正则表达式是用来解析的。大多数降价不能用or表示。正因为如此,使用正则表达式解析它们是。。。最难的时候是不可能的,最容易的时候就是慢下来

有几个很棒的JS bibtex解析器

是两个,我建议你看看那些。。。我知道您已经完成了创建正则表达式的工作,但我保证,当您开始使用真正的解析器时,您的工作将变得更加容易

这只是一个小例子,说明为什么正则表达式不好,而解析器更好

匹配模式包括

;;;)(>$#@ = 'dfsa3 342 '}
((())))+++>$#@ = 'dfsa3@@//''''''''''''
>$#@ = 'dfsa3@@//'''}}}}"""

这些不好

我知道人们喜欢使用正则表达式来解析标记,这似乎是一种时尚。。。像lady gaga,或者有趣的Dip。但是如果你想有效地解析标记,你应该使用或者编写一个解析器

为什么,正则表达式是用来解析的。大多数降价不能用or表示。正因为如此,使用正则表达式解析它们是。。。最难的时候是不可能的,最容易的时候就是慢下来

有几个很棒的JS bibtex解析器

是两个,我建议你看看那些。。。我知道您已经完成了创建正则表达式的工作,但我保证,当您开始使用真正的解析器时,您的工作将变得更加容易

这只是一个小例子,说明为什么正则表达式不好,而解析器更好

匹配模式包括

;;;)(>$#@ = 'dfsa3 342 '}
((())))+++>$#@ = 'dfsa3@@//''''''''''''
>$#@ = 'dfsa3@@//'''}}}}"""

这些不好

您需要一个比
*\s+.*\s+.*\s+.*\s+.*
大的子表达式来匹配换行符产生的所有空格。您需要一个比
*\s+.*\s+.*\s+.*
大的子表达式来匹配换行符产生的所有空格。感谢您的回复Austin,但是你建议的这两个库的问题是,我不确定我是否被合法允许使用它们,因为我正在编写的软件不是自由软件。此外,正则表达式不是我的整个程序,只是用来读取标记的部分。事实上,我正在尝试编写一个解析器,但我不习惯用JavaScript和regex编程,我发现要做这项工作的第一件事是在哪里。因此,任何关于如何更正正则表达式的建议或其他关于如何更正的简单解决方案都是非常受欢迎的。它现在尝试使用bibtex js,但我无法处理输入文件,因为它的注释处理被破坏,我在修复它时遇到了麻烦。此外,我还不能100%确定麻省理工学院的许可证是否允许我使用它。我正在编写一个内部工具,通过Greasemonkey上传发布列表,这样代码就永远不会被发布。经过一个小改动后,Bibtex js也可以按照我的要求工作。我现在很确定我所做的符合麻省理工学院的许可证。谢谢。简而言之,麻省理工学院的许可证上说,未经许可,你可以使用它做任何事情。你是安全的,任何来这里寻找不走捷径的BibTeX解析器的人,顺便看看我的项目,也叫。它解析注释、连接字符串等。感谢您的回复Austin,但您建议的两个库的问题是,我不确定是否合法允许我使用它们,因为我正在编写的软件不是自由软件。此外,正则表达式不是我的整个程序,只是用来读取标记的部分。事实上,我正在尝试编写一个解析器,但我不习惯用JavaScript和regex编程,我发现要做这项工作的第一件事是在哪里。因此,任何关于如何更正正则表达式的建议或其他关于如何更正的简单解决方案都是非常受欢迎的。它现在尝试使用bibtex js,但我无法处理输入文件,因为它的注释处理被破坏,我在修复它时遇到了麻烦。此外,我还不能100%确定麻省理工学院的许可证是否允许我使用它。我正在编写一个内部工具,通过Greasemonkey上传发布列表,这样代码就永远不会被发布。经过一个小改动后,Bibtex js也可以按照我的要求工作。我现在很确定我所做的符合麻省理工学院的许可证。谢谢。简而言之,麻省理工学院的许可证上说,未经许可,你可以使用它做任何事情。你是安全的,任何来这里寻找不走捷径的BibTeX解析器的人,顺便看看我的项目,也叫。它解析注释、连接字符串等。