By RRg


2019-08-13 18:56:40 8 Comments

I need to identify PMID in the string and extract the ID from it. However, I am facing an issue to do this is Php.

I tried using Regex to identify PMID, but couldn't succeed

   ob_start();
   include('getCallbyVkey.php');
   $output = ob_get_clean();
   $arr1 = explode('}', $output);
   foreach ($arr1 as $line_){
//        if (strpos($line_, 'pmid')){
           preg_match_all('/"pmid":#(\d+)/', $line_, $matches);
           print_r($matches);

Following is the data:

[{"author":"F\u00c3\u00bchrer S","pmid":"31401120","volume":"","issue":"","year":"2019","month":"Aug","journal":"Journal of molecular biology","journalabbrev":"J. Mol. Biol.","title":"Pathogenic Mutations Associated with Legius Syndrome Modify the Spred1 Surface and Are Involved in Direct Binding to the Ras Inactivator Neurofibromin.","order":"1","source":"PubMed"}
,{"author":"Yl\u00c3\u00a4-Outinen H","pmid":"31397088","volume":"","issue":"","year":"2019","month":"Aug","journal":"Molecular genetics & genomic medicine","journalabbrev":"Mol Genet Genomic Med","title":"Intestinal tumors in neurofibromatosis 1 with special reference to fatal gastrointestinal stromal tumors (GIST).","order":"2","source":"PubMed"}
,{"author":"Ahlawat S","pmid":"31396668","volume":"","issue":"","year":"2019","month":"Aug","journal":"Skeletal radiology","journalabbrev":"Skeletal Radiol.","title":"Current status and recommendations for imaging in neurofibromatosis type 1, neurofibromatosis type 2, and schwannomatosis.","order":"3","source":"PubMed"}
,{"author":"Ahlawat S","pmid":"31395668","volume":"","issue":"","year":"2019","month":"Aug","journal":"Neurology","journalabbrev":"Neurology","title":"Imaging biomarkers for malignant peripheral nerve sheath tumors in neurofibromatosis type 1.","order":"4","source":"PubMed"}
,{"pmid":"24033266","year":"2013","title":"A systematic approach to assessing the clinical significance of genetic variants.","author":"H Duzkale","clinacc":"RCV000218671","ClinicalSignificance":"benign","source":"ClinVar"}
,{"pmid":"25741868","year":"2015","title":"Standards and guidelines for the interpretation of sequence variants: a joint consensus recommendation of the American College of Medical Genetics and Genomics and the Association for Molecular Pathology.","author":"S Richards","clinacc":"RCV000218671","ClinicalSignificance":"benign","source":"Pubmed"}

The expected output is:

31401120
31397088
31395668
24033266
25741868

2 comments

@Jose Rojas 2019-08-13 19:25:13

Try changing your regex to:

preg_match_all('/"pmid":"(\d+)/', $line_, $matches);

this should make the trick, but as @Alex Howansky mentioned, you could use json_decode

@Etin 2019-08-13 19:16:07

json_decode it as @Alex Howansky says.


    $data = json_decode($output);
    foreach($data as $row) {
        print_r($row->pmid);
    }

Related Questions

Sponsored Content

29 Answered Questions

26 Answered Questions

[SOLVED] How do I get (extract) a file extension in PHP?

  • 2008-10-06 11:00:02
  • e-satis
  • 542064 View
  • 684 Score
  • 26 Answer
  • Tags:   php file-extension

11 Answered Questions

[SOLVED] How to extract a substring using regex

3 Answered Questions

[SOLVED] A regular expression to exclude a word/string

  • 2010-01-16 21:07:44
  • romiem
  • 498427 View
  • 251 Score
  • 3 Answer
  • Tags:   regex

36 Answered Questions

[SOLVED] How do I check if a string contains a specific word?

8 Answered Questions

[SOLVED] How can I exclude one word with grep?

10 Answered Questions

[SOLVED] Regular expression to extract text between square brackets

  • 2010-03-08 17:11:33
  • ObiWanKenobi
  • 460245 View
  • 341 Score
  • 10 Answer
  • Tags:   regex

14 Answered Questions

[SOLVED] How to extract numbers from a string in Python?

11 Answered Questions

[SOLVED] How to negate specific word in regex?

  • 2009-08-06 17:20:45
  • Bostone
  • 608743 View
  • 564 Score
  • 11 Answer
  • Tags:   regex

2 Answered Questions

[SOLVED] Serialized PHP Object not passing via POST.

Sponsored Content