如果特定字符匹配则忽略

时间:2014-04-28 16:16:02

标签: php regex preg-split

我有一个字符串:

$str = "yellow;yellow\;er;yellowest";

我像这样使用preg_split:

preg_split("/;/", $str);

但我希望得到这样的结果:

array(
    "yellow",
    "yellow;er",
    "yellowest"
)

但结果不对。

所以实际上我想做的是将字符串拆分为;,但如果;之前有\,那么它必须只保留; ,删除\而不将其拆分。因此,必须在;但不是\;进行拆分,如果有\;,则必须删除\字符。像字符串一样:

echo "Hello There \"Jacques\"";

给出:

  

Hello There" Jacques"

而不只是:

  

你好

1 个答案:

答案 0 :(得分:2)

您可以使用否定的lookbehind来确保;前面没有\

preg_split('/(?<!\\\);/', $str)