用于匹配APA参考格式的Ruby正则表达式

时间:2009-02-21 20:57:48

标签: ruby regex

我需要一个匹配APA格式引用的正则表达式。

我目前有这个:

/([A-Z][a-zA-Z\-\:\'\s\´]{3,}\, ([a-zA-Z]\.[\s|,|.]| &?){1,}){1,}\(\d\d\d\d(, [A-Z][a-z\- ]*\d\d?|)\)\.[a-zA-Z\-\:\'\s]{3,}\.[a-zA-Z\-\s]+\,[ ]*\d\d(\(\S\))*,\d+.\d+./

它只能捕获10并且很脆弱。

我只需要期刊文章 - 不是书籍,不是非英文文章。

有关如何使这个正则表达式更容易管理的任何提示都会受到赞赏。

我是使用Rubular

构建的

这是源数据(我知道缺少空格和国际字符问题):

  

Bre'dart,S.,Valentine,T.,Calder,   A.,& Gassi,L。(1995)。一个   面部交互激活模型   naming.Quarterly Journal of   ExperimentalPsychology,   48(A),466-486.Bruce,V.,&年轻,A。   (1986年)。理解面子   承认。英国   心理学,77,305-327.Burton,A。M.,   &安培; Bruce,V。(1992)。我认出你的   面对但我不记得你的名字:A   简单解释?英国期刊   心理学,83,45-60.Flude,B.,   埃利斯,A。,& Kay,J。(1990)。面对   处理和名称检索   anomic aphasic:存储名称   与语义信息分开   关于人。脑和认知,   11,60-72.Gratton,G.,Coles,M。G. H.,   Sirevaag,E。J.,Eriksen,C。W.,&   Donchin,E。 (1988)。预先和   posttimulus激活响应   通道:心理生理学   分析。实验   心理学:胡人的感知和   表演,14,331-344。霍奇斯,J。R.,   &安培; Greene,J。D. W.(1998)。会心   关于人和他们的理由:可以   阿尔茨海默病患者做了一个   没有其他?季刊   实验心理学,   51(A),121-134.Huynh,H。,&费尔德   S.(1976)。评估框   修正自由度   随机区块中的样本数据   andsplit-plot designs.Journal of   教育统计,   1,69-82.Jasper,H。H.(1958)。报告   关于方法的委员会   临床医学考试   electroencephalography.Electroencephalography   和临床神经生理学,   10,370-375.Johnston,R。A.,&布鲁斯,   V.(1990)。失物招领?恢复   名称代码和。之间的差异   熟悉的语义代码   人。心理学研究   52,62-67.Kornhuber,H。H.,& Deecke,   L.(1965)。 Hirnpotentialaenderungen   beiWillkuerbewegungen und passiven   Bewegungen des Menschen:   Be-reitschaftspotential und   reafferente Potentiale [Brain   自愿和自愿的潜在变化   人类的被动运动:准备就绪   潜力传入   潜力] .Pfluegers Archiv fuer die   Gesamte Physiologie,284,1-17.Kutas,   M.,& Donchin,E。(1974年11月8日)。   挤压研究:手淫,   响应的手,响应力,和   阅读的不对称性   potential.Science,186,545-547.Kutas,   M.,& Donchin,E。(1980)。制备   如表明的那样回应   与运动有关的大脑   潜力.Brain Research,202,95-115

搞乱mletterle答案的书籍参考示例

Lippold, O. C. J. (1967). Electromyography. In P. H. Venables & I. Martin
(Eds.), A manual of psychophysiological methods (pp. 245–298). Amsterdam:
North-Holland.
Low, K. A., & Miller, J. (1999). The usefulness of partial information:
Effects of go probability in the choice/nogo task. Psychophysiology, 36,
288–297.

1 个答案:

答案 0 :(得分:10)

这个正则表达式应该做你想做的事情

([^\.].*?[0-9])(?=\.|\Z)

它使用正面向前检查数字后跟一个句点(或字符串的结尾),它排除了捕获的句点。您可以在此处查看结果:http://www.rubular.com/regexes/6293