通过正斜杠拆分字符串但忽略字符串中的 <\
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>
)
我有类似的字符串
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>
)