我想/&%#$用下划线替换所有非字母和数字字符等等,(_)并'用" "空格替换所有(单引号)(所以没有下划线).
所以" 没有任何 "(忽略双引号)会变成" There_wouldnt_be_any ".
因为这个帖子,我在reg表达式上没用.
干杯
Chr*_*oft 34
$newstr = preg_replace('/[^a-zA-Z0-9\']/', '_', "There wouldn't be any");
$newstr = str_replace("'", '', $newstr);
Run Code Online (Sandbox Code Playgroud)
我将它们分成两行,以使代码更清晰.
注意:如果您正在寻找Unicode支持,请参阅下面的Filip的答案.它将匹配除了注册为字母的所有字符A-z.
Fil*_*efp 29
如果你通过写" 非字母和数字 "排除超过[A-Za-z0-9](即考虑字母,如åäö字母),并希望能够准确处理UTF-8字符串\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
);
Run Code Online (Sandbox Code Playgroud)
产量
string(23) "Thäre_wouldnt_bé_äny"
Run Code Online (Sandbox Code Playgroud)