2016-06-17 3 views
0

У меня есть строка, как: $string='(orange fruit OR APPLE) AND (Kiwi OR banana pie)'Regex для получения нескольких слов, разделенных булевыми операторами

Мне нужно регулярное выражение для извлечения слов, разделенных булевыми операторами OR и AND и игнорировать скобки.

Таким образом, результат должен быть массивом: orange fruit, APPLE, Kiwi, banana pie

Я не уверен, с чего начать, как я не очень хорошо с регулярным выражением. Есть ли простой способ сделать это?

ответ

1

В текущем случае необходимо выполнить следующие действия:

$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); 

Выход:

Array (
    [0] => orange fruit 
    [1] => APPLE 
    [2] => Kiwi 
    [3] => banana pie 
) 
Смежные вопросы