mermshaus: Pattern für preg_match

Beitrag lesen

Angenommen, der Backslash ist das Escape-Zeichen für single quotes in single quotes:

<?php  
  
$pattern = '  
    /  
    \'  
    (?:  
        \\\\{2} # treffe zwei Backslashes  
        |  
        \\\\.   # oder einen Backslash und ein beliebiges Zeichen  
        |  
        [^\\\\] # oder ein Zeichen, das kein Backslash ist  
    )*?  
    \'  
    /sx';  
  
$subject = "set('Hotel','Pension','Lodge','Ferienhaus','Ferienwohnung')";  
  
$matches = array();  
preg_match_all($pattern, $subject, $matches);  
$tmp = $matches[0];  
array_walk($tmp, function (&$s) {  
    $s = trim($s, '\'');  
});  
var_dump($tmp);  
  
//array(5) {  
//  [0]=>  
//  string(5) "Hotel"  
//  [1]=>  
//  string(7) "Pension"  
//  [2]=>  
//  string(5) "Lodge"  
//  [3]=>  
//  string(10) "Ferienhaus"  
//  [4]=>  
//  string(13) "Ferienwohnung"  
//}

Fallunterscheidung, ob es ein set() ist oder sonst was, dürfte ja hinzubekommen sein.