Соответствие регулярному выражению, исключающее определенный шаблон

Я хочу разбить строку вокруг запятой (,) или же &, Это просто, но я хочу остановить соответствие для любого содержимого в скобках.
Например, если я бегу по

sleeping , waking(sit,stop)

должен быть только один сплит и два элемента

заранее спасибо

0

Решение

Это идеальный пример для (*SKIP)(*FAIL) механизм PCRE (и поэтому PHP) предложения.
Вы могли бы придумать следующий код:

<?php
$string = 'sleeping , waking(sit,stop)';
$regex = '~\([^)]*\)(*SKIP)(*FAIL)|[,&]~';
# match anything between ( and ) and discard it afterwards
# instead match any of the characters found on the right in square brackets
$parts = preg_split($regex, $string);
print_r($parts);
/*
Array
(
[0] => sleeping
[1] =>  waking(sit,stop)
)
*/

?>

Это разделит любой , или же & который не в скобках.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]