通过正斜杠拆分字符串但忽略字符串中的 <\

Split a string by forward slash but ignore the <\ in the string

我有类似的字符串

word1/word2/word3/<b>word3</b>

我想用正斜杠分解这个字符串。这样我就可以得到下面的结果。

Array = (
[0] => 'word1',
[1] => 'word2',
[2] => 'word3',
[3] => '<b>word3</b>'
);

但是我无法得到上面的结果。相反,我得到以下结果

Array = (
    [0] => 'word1',
    [1] => 'word2',
    [2] => 'word3',
    [3] => '<b>word3<',
    [4] => 'b>'
    );

我应该使用什么正则表达式来使用 preg_split 函数来达到预期的结果?

使用 preg_split 函数和特定的正则表达式模式:

$s = 'word1/word2/word3/<b>word3</b>';
$result = preg_split('~(?<!<)/~', $s);
print_r($result);
  • ~ - 被视为正则表达式分隔符

  • (?<!<)/ - 否定后视断言,确保正斜杠 / 前面没有 <

输出:

Array
(
    [0] => word1
    [1] => word2
    [2] => word3
    [3] => <b>word3</b>
)