使用正则表达式匹配学术列表中的名称和出版物标题

时间:2018-04-05 04:03:22

标签: javascript regex

我正在尝试使用正则表达式来匹配引文标题。

这是我的正则表达式:

(?!([Á-ÝA-Z\s\-])*?(\.|;|,)\s*)([^;]+?\.\s)

以下示例中的标题以粗体突出显示:

BENVENISTE,É。 问题解决方案。圣保罗:Ed。全国; EDUSP,1976。第一卷。

BERNERS-LEE,T。语义网概念。 2005a。 Disponívelem:http://www.w3.org/2005/Talks/0517-boit-tbl。 Acesso em:25套。 2014

BERNERS-LEE,T。 Web for real people。 2005b。 Disponívelem。 Acesso em:25套。 2014。

BERNERS-LEE,T。; CAILLIAU,R。 WorldWideWeb:关于超文本项目的提案。1990.Disponívelem:< http://www.w3.org/Proposal.html>。 Acesso em:13 out。 2014。

BERNERS-LEE,T。; HENDLER,J。; LASSILA,O。语义网:对计算机有意义的新形式的网络内容将引发新的可能性革命。纽约:科学美国人,2001年.Disponívelem:http://www.sciam.com/2001/050lissue/0501berners-lee.html 。 Acesso em:13 out。 2014。

BLAIR,D。C. 信息检索和语言哲学。信息科学与技术年度回顾,第37卷,第3-50页,梅德福,2003年。

BLAIR,D。C. Wittgenstein,语言和信息:回到粗糙的地面! Dordrecht:Springer,2006。

BONFIM,M。E. RecuperaçãodeDocumentos Texto Usando UmModeloProbabilísticoEstendido。 Piracicaba:UNIMEP,2006。131 f。 Dissertação(MestradoemCiênciodaComputação)。 MestradoemCiênciadaComputação。 Universidade Metodista de Piracicaba,2006。

BORLUND,P。 IR中的相关概念。美国信息科学与技术学会期刊,第54页,p。 913-925,2003。

BORST,W。N. 建设工程本体。 Tese(Doutorado em信息和知识系统)。 Tweenty大学 - Telematica和信息技术中心,恩斯赫德,荷兰,1997年。

无边。 无限心理学。 201X。 Disponívelem< https://www.boundless.com/psychology/textbooks/boundless-psychology-textbook/> Acesso em:13年前。 2014。

BRATT,S。语义网和其他需要关注的技术。2008.Disponívelem< http://www.w3.org/2008/Talks/1009-bratt-W3CSemTech/Overview.html> Acesso em:13年前。 2014。

可以在此处找到要测试的所有字符串:https://regex101.com/r/zuUjT4/1

我的问题:我必须做哪些修改才能匹配标题?我试图匹配到第一个点但没有成功。

2 个答案:

答案 0 :(得分:1)

我为你想要的输出改变了你的正则表达式

^.*?(?!(?:[Á-ÝA-Z\s\-])*?(?:\.|;|,)\s*)([^;]+?(?:\.|\!)\s).*$

Demo ,,,我在其中添加了锚点(^ and $)以匹配一行,我将括号组更改为non-capturing groups,除了您要为输出捕获的那个

([^;]+?(?:\.|\!)\s)

在此捕获group 1(或\1)中,我添加了捕获目标字符串可能以!字符结尾的可能性。

将输出视图替换为\1匹配。

Problemas de linguística geral. 
Semantic Web Concepts. 
Web for real people. 
WorldWideWeb: Proposal for a HyperText Project. 
The semantic web: a new form of web content that is meaningful to computers will unleash a revolution of new possibilities. 
Information Retrieval and the Philosophy of Language. 
Wittgenstein, Language and Information: Back to the Rough Ground! 
Recuperação de Documentos Texto Usando Um Modelo Probabilístico Estendido. 
The Concept of Relevance in IR. 
Construction of engineering ontologies. 
Boundless Psychology. 
Semantic Web, and Other Technologies to Watch.

答案 1 :(得分:0)

我会尝试(1)匹配名称,(2)然后是标题,因为名称的末尾标志着标题的开头。可以对名称出现的各种方式进行分类。我首先要注意^[Á-ÝA-Z-]+捕获每行中每个名字的第一个单词。

匹配名称。

  • 两个(“ARISTÓTELES。”,“BOUNDLESS。”)以第一个单词后面的句号结束。

    所以^[Á-ÝA-Z-]+\.可以为那些人服务。

  • One(“BRITISH LIBRARY。”)有多个单词。

    所以^[Á-ÝA-Z-][Á-ÝA-Z\s-]+\.会包含它。

  • 两个(“ASSOCIAÇÃOBASILEIRADENORMASÉCICAS(ABNT)。”,“国际标准化组织(ISO)。”)有多个单词和括号。

    所以^[Á-ÝA-Z-][Á-ÝA-Z()\s-]+\.会包含它们。

  • 大多数(例如“ARMENGAUD,F。”,“BUNGE,M。”)是姓名,逗号,空格,首字母,句号。

    如果我们只是像,(那样向字符组添加),我们就会忽略将两个首字母完全匹配(例如“BLAIR,DC”) 。我们不能在字符组中包含.,因为我们依赖句点作为名称和标题之间的分隔符。所以我们必须更具体地匹配首字母后的句号。

    所以^[Á-ÝA-Z-][Á-ÝA-Z\s()-]+(?:\.|, [Á-ÝA-Z-]\.)会包含它们。

  • 然后有多个首字母的案例。

    所以^[Á-ÝA-Z-][Á-ÝA-Z\s()-]+(?:\.|,(?: [Á-ÝA-Z-]\.)+)会包含它们。

  • 然后存在多个作者被;分隔的常规案例(例如“ALMEIDA,M .; SOUZA,R。; FONSECA,F。”)。我们可以重复使用正则表达式来匹配单个名称(带有一个或多个首字母)。

    因此,在末尾添加(?:; [Á-ÝA-Z-][Á-ÝA-Z\s()-]+,(?: [Á-ÝA-Z-]\.)+)*会产生:

    ^[Á-ÝA-Z-][Á-ÝA-Z\s()-]+(?:\.|,(?: [Á-ÝA-Z-]\.)+)(?:; [Á-ÝA-Z-][Á-ÝA-Z\s()-]+,(?: [Á-ÝA-Z-]\.)+)+
    
  • 此时我们有几个极端情况:

    • “ -​​ ”的缩写:“PLLPEN,P .; KIM,K.-S。;”和“CHEN,P。P-S。”
    • 逗号分隔多位作者:“GREIMAS,A。J.,COURTÉS,J。”
    • 将“de”作为名称的一部分:“GRACIOSO,L。de S.”和“BRUYNE,P。de,HERMAN,J.,SCHOUTHEETE,M。de。”后者也使用逗号分隔多位作者。
    • 之后有“et al”:“CINTRA,A。et al。”和“GONZÁLEZ,J.A。M.等人”
    • “BUFREM,L。S,et al。”由于两个原因不匹配:有一个拼写错误(“S”之后的缺失期)和“et al”未被识别。这个“et al”在它之前用逗号写成。

匹配标题。

  • 从简单模式开始,([^.]+)抓取最多。

  • 一些极端情况:

    • “维特根斯坦,语言和信息:回到粗糙的地面!”
    • “FOAF词汇规范0.9”
    • “实体 - 关系模型 - 迈向统一的数据视图.ACM Transactions on Database Systems,v.1,n.1,p.9-36,1976”
    • and so on...