2017-12-06 1 views
-1

Ich habe die folgende Zeichenfolge Beispiele:PHP Regex Extract Substring mit Zitaten und Brackets

new myProduct('', 'bbc_609'), 
new myProduct('', '35857'), 

Ich möchte nur die Codes in dem zweiten Satz von einfachen Anführungszeichen extrahieren können: bbc_609 oder 35857

Was ich habe versucht:

$str = "new myProduct('', 'bbc_609'),"; 
preg_match('/ new myProduct('', ' ' (.*?) ''),/', $str, $match); 
echo $match[1]; 

ich ein Parse-Fehler bin immer so gehe ich davon aus, dass ich nicht die Anführungszeichen oder Klammern richtig bin entkommen?

Jede Hilfe wird geschätzt.

Prost

Antwort

1

Try this:

$str = "new myProduct('', 'bbc_609'),"; 
preg_match("/new myProduct\('', '(.*?)'\)/i", $str, $match); 
echo $match[1]; 
1

Sie können versuchen, dass:

\(\s*'[^'\)]*'\s*,\s*'\K[^'\)]*(?=\s*') 

Demo

1

Sie haben die Klammern zu entkommen und die Zitate sonst werden sie interpretiert werden anders nach PHP und Regex.

$str = "new myProduct('', 'bbc_609'),"; 
preg_match('/new myProduct\(\'\', \'(.*)\'\)/', $str, $match); 
echo $match[1];