PHP preg_replace 特殊字符
2022-08-30 21:25:17
我想替换所有非字母和数字字符,即 etc 用下划线替换,并将所有(单引号)替换为“”空白(所以没有下划线)。/&%#$
(_)
'
因此,“不会有任何”(忽略双引号)将变成“There_wouldnt_be_any”。
我在reg表达式上是无用的,因此这篇文章。
干杯
我想替换所有非字母和数字字符,即 etc 用下划线替换,并将所有(单引号)替换为“”空白(所以没有下划线)。/&%#$
(_)
'
因此,“不会有任何”(忽略双引号)将变成“There_wouldnt_be_any”。
我在reg表达式上是无用的,因此这篇文章。
干杯
如果你通过写“非字母和数字”排除超过(即考虑字母喜欢字母到)并希望能够准确地处理UTF-8字符串,并将有所帮助。[A-Za-z0-9]
åäö
\p{L}
\p{N}
\p{N}
将匹配任何“数字”"\p{L}
将匹配任何“字母字符”,其中包括$data = "Thäre!wouldn't%bé#äny";
$new_data = str_replace ("'", "", $data);
$new_data = preg_replace ('/[^\p{L}\p{N}]/u', '_', $new_data);
var_dump (
$new_data
);
输出
string(23) "Thäre_wouldnt_bé_äny"
$newstr = preg_replace('/[^a-zA-Z0-9\']/', '_', "There wouldn't be any");
$newstr = str_replace("'", '', $newstr);
我将它们放在两行上,以使代码更清晰一些。
注意:如果您正在寻找Unicode支持,请参阅下面的Filip的答案。它将匹配除 之外注册为字母的所有字符。A-z