我想将字符串拆分为逗号(,
)或&
。这很简单,但我想停止括号之间的任何内容的匹配。
例如,如果我在
sleeping , waking(sit,stop)
只需要一个分割和两个元素
提前致谢
答案 0 :(得分:1)
这是(*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)
)
*/
?>
这会将括号中不的,
或&
分开。