我想用null替換這些字符[^ a-zа-з0-9_],但是當它的多字節字符串時我不能這樣做。帶西里爾字符的preg_replace
我試過用mb_ *,iconv,PCRE,mb_eregi_replace和u修飾符(用於PCRE),但都沒有效果。
的mb_eregi_replace工作,但只輸出正確的UTF8字符串,但它並不能取代的人物,當preg_replace函數使用相同的正則表達式工程..
這裏是我的代碼與Unicode的作品,但它不會取代文字。
function _data($data)
{
mb_regex_encoding('UTF-8');
return mb_eregi_replace('/[^a-zа-з0-9_]+/', '', $data);
}
var_dump(namespace\_data('Текст Removethis- and this _#$)(and also this $*@&$'));
,其結果是與特殊字符(#_ $ ..)時,就應更換他們,如果我改變的preg_replace函數(和沒有Unicode),就應更換它們。
'a-з'看起來有點奇怪。是西里爾文的「a」而不是常規的ascii'a'?如果是ascii,那麼你在這裏指定了一個heckuva範圍的字符。 –
其西裏爾字母a。 –