2009-02-21 7 views
2

J'ai besoin d'une expression régulière qui corresponde aux références au format APA.Expression régulière Ruby pour le format de référence APA correspondant

J'ai actuellement ceci:

/([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+./ 

Il attrape seulement 10 et est fragile comme l'enfer.

J'ai seulement besoin d'articles de revues - pas de livres, pas d'articles non-anglais.

Tout conseil sur la façon de rendre cette regex plus gérable apprécié.

Je l'ai construit en utilisant Rubular

Ceci est la source de données (je sais sur les espaces manquants et les questions de caractère international):

Bre'dart, S., Valentine, T., Calder , A., & Gassi, L. (1995). Un modèle de interactiveactivation du visage naming.Quarterly Journal of ExperimentalPsychology, 48 (A), 466-486.Bruce, V., & Young, A. (1986). Compréhension du visage reconnaissance.BritishJournal de Psychologie, 77,305-327.Burton, A. M., & Bruce, V. (1992). Je reconnais votre visage mais je peux vous rappeler votre nom: A simple explication? British Journal of Psy-chologie, 83,45-60.Flude, B., Ellis, A., & Kay, J. (1990). traitement du visage et le nom retrievalin un anomique aphasiques: noms sont stockés séparément des semanticinformation environ people.Brain and Cognition, 11,60-72.Gratton, G., Coles, MGH, Sirevaag, EJ, Eriksen, CW , & Donchin, E. (1988). Avant et activation poststimulus de réponse canaux: Apsychophysiological analysis.Journal of Experimental Psychologie: Perception Hu-man et Performance, 14,331-344.Hodges, J. R., & Greene, J. D. W. (1998). Sachant des gens les andnaming: Peut- patients atteints de la maladie d'Alzheimer ne un sans theother Quarterly Journal of psychologie expérimentale, 51 (A), 121-134.Huynh, H., & Feldt, L. S. (1976?). Estimation de la boîte correction pourdegrees de liberté de données d'échantillon dans le bloc randomisé etsplit-plot designs.Journal de Statistique de l'éducation, 1,69-82.Jasper, H. H. (1958). Rapport du comité sur les méthodes de clinicalexamination dans electroencephalography.Electroencephalography andClinical neurophysiologie, 10,370-375.Johnston, R. A., & Bruce, V. (1990). Propriétés perdues? Récupération codes nom differencesbetween et codes sémantiques pour la recherche familière people.Psycho-logique 52,62-67.Kornhuber, H. H., & Deecke, L. (1965).Hirnpotentialaenderungen beiWillkuerbewegungen et passifs des mouvements de personnes: Be-disponibilité potentiel et potentiels reafferent [Brain de changesfor potentiel volontaire et mouvements passifs chez les humains: préparation potentiels potentialand afférences ] .Pfluegers Archive pour la totale physiologie, 284,1 -17.Kutas, M. , & Donchin, E. (1974, le 8 Novembre). études de compression: Dominance, répondre main, force d'intervention et de l'asymétrie de readi-ness potential.Science, 186,545-547.Kutas, M., & Donchin, E. (1980). Préparation pour répondre comme Manifesté cerveau liées bymovement- potentials.Brain recherche, 202,95-115

Exemples de références de livres ont gâcher la réponse 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. 

Répondre

10

Ce regex devrait faire ce que vous veulent

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

Il utilise regard positif avant de vérifier les chiffres suivis d'une période (ou la fin de la chaîne) il exclut les périodes des captures. Vous pouvez voir le résultat ici: http://www.rubular.com/regexes/6293

+0

Tant et si bien mieux que ce que je préparais. Belle! Je – m104

+0

essayé de faire une regex a extrayait les différentes parties de la chaîne en match-groupes correctement, mais je suppose que le format est juste ambiguë et sujette à l'erreur (fautes de frappe, etc.) pour obtenir une expression régulière pour le faire. Je suppose que le vôtre est aussi proche qu'il obtient. +1 – Tomalak

+0

Votre regex m'a permis de comprendre la question :) –

Questions connexes