2016-06-17 12 views
0

Ich habe eine Zeichenfolge getrennt mehrere Wörter bekommen wie: $string='(orange fruit OR APPLE) AND (Kiwi OR banana pie)'Regex für von Booleschen Operatoren

ich regex müssen die Worte von den Booleschen Operatoren OR und AND und ignorieren die Klammern getrennt zu extrahieren.

So sollte das Ergebnis ein Array sein: orange fruit, APPLE, Kiwi, banana pie

Ich bin nicht sicher, wo man anfangen soll, wie ich mit regex bin nicht sehr gut. Gibt es eine einfache Möglichkeit, dies zu tun?

Antwort

1

In Ihrem aktuellen Fall Sie wie folgt vor:

$string =' (orange fruit OR APPLE) AND (Kiwi OR banana pie)'; 
// Remove all extra characters and spaces from string 
$result = trim(preg_replace('#[\s\(\)]+#', ' ', $string)); 
// Split result by possible delimeters 
$result = preg_split('# (or|and) #i', $result); 
// Output 
print_r($result); 

Ausgang:

Array (
    [0] => orange fruit 
    [1] => APPLE 
    [2] => Kiwi 
    [3] => banana pie 
)