php正则表达式未知空格
我很难弄清楚这个regexp如何匹配多个空格:php正则表达式未知空格,php,regex,Php,Regex,我很难弄清楚这个regexp如何匹配多个空格: $str = ' '; if (preg_match_all('/\s{2,}/', $str, $matches)) { var_dump($matches); } 事实是,如果我将str值替换为3个“实”空格,它将按预期工作,但str中的字符显然不是空白(从其他源复制粘贴)!!但我需要匹配它们,用真实的空间/任何东西替换它们 我的问题:str中那些看起来像空格的简单字符是什么?更重要的是,如何在regexp中定位它们?中间的字符
$str = ' ';
if (preg_match_all('/\s{2,}/', $str, $matches)) {
var_dump($matches);
}
事实是,如果我将str值替换为3个“实”空格,它将按预期工作,但str中的字符显然不是空白(从其他源复制粘贴)!!但我需要匹配它们,用真实的空间/任何东西替换它们
我的问题:str中那些看起来像空格的简单字符是什么?更重要的是,如何在regexp中定位它们?中间的字符是utf-8编码的不间断空格。添加到您的正则表达式中,它将正常工作,例如
/\s{2,}/u
产出:
array(1) {
[0]=>
array(1) {
[0]=>
string(4) " "
}
}
中间字符是utf-8编码的不间断空格。添加到您的正则表达式中,它将正常工作,例如
/\s{2,}/u
产出:
array(1) {
[0]=>
array(1) {
[0]=>
string(4) " "
}
}
由\s捕获的空白字符可能包括实空格(代码0x20)、水平制表符(0x09)、回车符(0x0D)、换行符(0x0A)和换行符(0x0C)。因此,如果要将所有这些字符转换为实空格,可以使用以下行:
$str=preg_replace('/\s/',' ',$str);
或者,如果要将两个或多个空格字符的序列替换为一个实空格,请使用以下方法:
$str=preg_replace('/\s{2,}/',' ',$str);
由\s捕获的空白字符可能包括实空格(代码0x20)、水平制表符(0x09)、回车符(0x0D)、换行符(0x0A)和换行符(0x0C)。因此,如果要将所有这些字符转换为实空格,可以使用以下行:
$str=preg_replace('/\s/',' ',$str);
或者,如果要将两个或多个空格字符的序列替换为一个实空格,请使用以下方法:
$str=preg_replace('/\s{2,}/',' ',$str);
请把问题改写成可以回答的形式。请把问题改写成可以回答的形式。