*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. Art. Ser. X(10): 138-146, 1974. *FIELD* CSFrom that I'm trying to convert to this
My script isAm. J. Med. Genet.[JO] AND 1983[DP] AND 15[VI] AND 39[PG] Birth Defects Orig Artic Ser.[JO] AND 1974[DP] AND 10[VI] 138[PG] Am. J. Med. Genet.[JO] AND 1993[DP] AND 46[VI] AND 501[PG]
#!/usr/bin/perl # # parse the pubmed links to searchable format # use warnings; use strict; use File::Basename; sub parse_pub ($) { my $string = shift @_; local $_; if ($string =~ m/^.+?:.+?\. (.+)+$/) { $_ = $1; if (m/(.+?) (\d+): (\d+)-\d+, (\d+)./) { return "${1}[JO] AND ${4}[DP] AND ${2}[VI] AND ${3}[PG]"; } else { return undef; } } return; } my $omimf = shift @ARGV || "-"; open (INF,"$omimf") or die "Unable to open '$omimf': $!"; my $within = 0; # within field area my $key = ""; # current type my $i = 1; # line number my $space = 0; # was last line space my $extra = ""; # entries are in multiple lines while (<INF>) { chomp; s/\r$//; !m/\*FIELD\* RF/ && !$within && next; if (m/\*FIELD\*/ && $within) { $within = 0; exit; } elsif (m/\*FIELD\* RF/) { $within = 1; } else { if (!$_) { $space = 1; } else { $space = 0; } if ($space) { chop ($extra); if ($extra =~ m/^.+?:.+?\. (.+)+$/) { $extra = $1; # print "$string,$1\n"; if ($extra =~ m/(.+?) (\d+): (\d+)-\d+, (\d+)./) { print "${1}[JO] AND ${4}[DP] AND ${2}[VI] AND ${3}[PG]\n"; } else { # return undef; } } # if ($key = parse_pub($extra)) { # # print "$key\n"; # } else { # print "$extra\n"; # } } else { $extra .= "$_ "; } } # main else } exit;
should beif (m/\*FIELD\*/ && $within) { $within = 0; }
if (m/\*FIELD\*/ && $within) { $within = 0; $extra = ""; }
In reply to Regex, loops and subs by Hena
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |