我试图在换行符,空格和其他字符之后添加一个特殊字符串'|||'。我这样做是因为我想把文本分割成一个数组。所以我想这样写:
$result = preg_replace("/<br>/", "<br>|||", preg_replace("/s/", " |||", preg_replace("/r/", "r|||", preg_replace("/n/", "n|||", preg_replace("/’/", "’|||", preg_replace("/'/", "'|||", $text))))));
$result = preg_split("/[|||]+/", $result);
它适用于除包含字符的字符以外的所有单词。它被"代替。我敢肯定问题就在这里,因为我的字符串$text显示字符
由于您的模式处理Unicode字符串,因此传递/u
修饰符
同样,您不需要那么多链接的regex替换,将第一个模式分组并在替换中使用反向引用。
使用preg_replace("/(<br>|[s’'])/u", "$1|||", $text)
注意s
匹配空格、回车和换行符。
:
-
(<br>|[s’'])
-组1捕获a-
<br>
-字符序列 -
|
-或 -
[s’']
-空格,’
或'
。
-
查看PHP演示:
$text = "Voilà. C'est vrai.";
echo preg_replace("/(<br>|[s’'])/u", "$1|||", $text);