我有一个字符串:
$str = "yellow;yellow\;er;yellowest";
我像这样使用preg_split:
preg_split("/;/", $str);
但我希望得到这样的结果:
array(
"yellow",
"yellow;er",
"yellowest"
)
但结果不对。
所以实际上我想做的是将字符串拆分为;
,但如果;
之前有\
,那么它必须只保留;
,删除\
而不将其拆分。因此,必须在;
但不是\;
进行拆分,如果有\;
,则必须删除\
字符。像字符串一样:
echo "Hello There \"Jacques\"";
给出:
Hello There" Jacques"
而不只是:
你好
答案 0 :(得分:2)
您可以使用否定的lookbehind来确保;
前面没有\
preg_split('/(?<!\\\);/', $str)