从 PHP 上的字符串中删除 EN space
Delete EN space from string on PHP
在我的一段代码中检测到 rtrim()
没有删除字符串末尾的 space。
调查,我看到该字符串包含 EN SPACE (U+2002)
$str = 'ANDREWS CAROLE [US]';
// rawurlencode($s) //--> "ANDREWS%20CAROLE%E2%80%82%5BUS%5D"
$pat = "/\[(.*?)\]/";
$str = preg_replace($pat,'',$str); //--> "ANDREWS CAROLE " -> ANDREWS%20CAROLE%E2%80%82"
尝试但失败 Filter all types of whitespace in PHP
$new = preg_replace('\p{Zs}$', '', $s)
我不知道 $character_mask
这个 space 与 rtrim
一起使用的价值
你试过吗:
<?php
$string = preg_replace('/\s*\[(.*?)\]/u','', 'ANDREWS CAROLE [US]');
var_dump($string);
输出:
string(14) "ANDREWS CAROLE"
您可以在模式前使用 [\p{Z}\t]*
来匹配零个或多个可选空格,包括 unicode 空格:
$str = 'ANDREWS CAROLE [US]';
var_dump ( preg_replace('/[\p{Z}\t]*\[(.*?)\]/u', '', $str) );
//=> string(14) "ANDREWS CAROLE"
在我的一段代码中检测到 rtrim()
没有删除字符串末尾的 space。
调查,我看到该字符串包含 EN SPACE (U+2002)
$str = 'ANDREWS CAROLE [US]';
// rawurlencode($s) //--> "ANDREWS%20CAROLE%E2%80%82%5BUS%5D"
$pat = "/\[(.*?)\]/";
$str = preg_replace($pat,'',$str); //--> "ANDREWS CAROLE " -> ANDREWS%20CAROLE%E2%80%82"
尝试但失败 Filter all types of whitespace in PHP
$new = preg_replace('\p{Zs}$', '', $s)
我不知道 $character_mask
这个 space 与 rtrim
一起使用的价值
你试过吗:
<?php
$string = preg_replace('/\s*\[(.*?)\]/u','', 'ANDREWS CAROLE [US]');
var_dump($string);
输出:
string(14) "ANDREWS CAROLE"
您可以在模式前使用 [\p{Z}\t]*
来匹配零个或多个可选空格,包括 unicode 空格:
$str = 'ANDREWS CAROLE [US]';
var_dump ( preg_replace('/[\p{Z}\t]*\[(.*?)\]/u', '', $str) );
//=> string(14) "ANDREWS CAROLE"