in reply to Regex, loops and subs
I've run out of time tonight, but the following may offer some ideas:
#!/usr/bin/perl # # parse the pubmed links to searchable format # use warnings; use strict; use File::Basename; my $within = 0; # within field area my $space = 0; # was last line space local $/ = '*FIELD* RF'; <DATA>; #Skip prefix stuff $/ = "\n\n"; #Read a "record" at a time while (<DATA>) { chomp; exit if m/\*FIELD\*/; tr/\n/ /d; my $record = $_; if ($record =~ m/^[^:]+:.+?\. (.+)$/) { my $extra = $1; if ($extra =~ m/(.+?) (\d+): (\d+)-\d+, (\d+)./) { print "${1}[JO] AND ${4}[DP] AND ${2}[VI] AND ${3}[PG]\n"; } } }
__DATA__ This is some prefix guff of no import. *FIELD* RF 1. Grier, R. E.; Farrington, F. H.; Kendig, R.; Mamunes, P.: Autosomal dominant inheritance of the Aarskog syndrome. Am. J. Med. Genet. 15: 39-46, 1983. 2. Teebi, A. S.; Rucquoi, J. K.; Meyn, M. S.: Aarskog syndrome: report of a family with review and discussion of nosology. Am. J. Med. Genet. + 46: 501-509, 1993. 3. Welch, J. P.: Elucidation of a 'new' pleiotropic connective tissue disorder. Birth Defects Orig. Artic Ser. X(10): 138-146, 1974. *FIELD* CS
Prints:
Am. J. Med. Genet.[JO] AND 1983[DP] AND 15[VI] AND 39[PG] Am. J. Med. Genet.[JO] AND 1993[DP] AND 46[VI] AND 501[PG]
|
|---|