gpt4 book ai didi

PHP 多字节安全 preg_replace 对比。字符串替换

转载 作者:行者123 更新时间:2023-12-03 01:03:30 25 4
gpt4 key购买 nike

美好的一天!

我在使用 preg_replace 和 utf-8 字符时遇到一些问题。以下代码片段:

$v = "line1\nline2\r\nмы хотели бы поблагодарить";
print $v;
print preg_replace("#\R#", "", $v);
print preg_replace("\n", "", $v);

返回以下输出:

line1
line2
мы хотели бы поблагодарить

line1line2мы �отели бы поблагодарить

line1line2
мы хотели бы поблагодарить Вас

由于某种原因,使用 \R 时 х 不可读,但使用 \n 时不受影响。由于 \R 是 PHP 特定的,我认为这会产生问题。有人知道如何在 preg_replace 中使用 \R (str_replace 不接受)吗?我担心这个问题可能会在许多其他情况下发生,而不仅仅是资本气。

最佳答案

由于您有 Unicode 输入,因此必须将 /u 标志传递给正则表达式才能正确处理输入:

$v = "line1\nline2\r\nмы хотели бы поблагодарить";
echo preg_replace('/\R/u', "", $v);
// => line1line2мы хотели бы поблагодарить

参见IDEONE demo

当模式和输入都可以包含 Unicode 字符串文字时,需要此 /u 标志。

关于PHP 多字节安全 preg_replace 对比。字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32563895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com