in reply to Re: Extracting web data
in thread Extracting web data

Thank you for your reply. Well, I tried using the above code but it doesn't seem to work. I getting the same output as below.

http://www.ncbi.nlm.nih.gov/pubmed/4012367 PMID: PMID: 4012367 http://www.ncbi.nlm.nih.gov/pubmed/20215333 PMID: doi:10.1093/fampra/cmq003PMID: 20215333 http://www.ncbi.nlm.nih.gov/pubmed/20429974 PMID: PMID: 20429974 http://www.ncbi.nlm.nih.gov/pubmed/20338007 PMID: doi:10.1111/j.1600-0838.2009.01081.xPMID: 20338007 http://www.ncbi.nlm.nih.gov/pubmed/17438827 PMID: PMID: 17438827 http://www.ncbi.nlm.nih.gov/pubmed/17447555 PMID: PMID: 17447555

Also, the PMID is always a number.

Replies are listed 'Best First'.
Re^3: Extracting web data
by zek152 (Pilgrim) on Jun 13, 2011 at 14:42 UTC

    Did you uncomment the if statement and comment the other print? The code I posted cannot print non numeric data. If the regular expression I provided does not match anything then please provide exactly what $foo->identifiers() prints.

      Yes, I did uncomment the if statement and comment the other print. But, I didn't get any output. $foo-> identifiers() prints the following output.

      PMID: PMID: 4012367

      it prints this if its only PMID else, if there are two identifiers it prints both the doi and the PMID as follows

      PMID: doi:10.1093/fampra/cmq003PMID: 20215333

        I took your strings verbatim and ran my regular expression match. Code and results follow:

        @strings = ("PMID: PMID: 4012367", "PMID: doi:10.1093/fampra/cmq003PMI +D: 20215333"); for $string (@strings) { if ($string =~ /PMID: (\d+)/) { print "$1\n"; } } #OUTPUT #4012367 #20215333

        I'm not exactly sure what your problem is but my code does what I believe you want to accomplish.