PHP -Multibyte正则表达式删除除中文字符之外的所有字符...请帮助

时间:2010-12-01 16:34:37

标签: php regex string utf-8 posix

我正在尝试使用类似于:

的UTF-8字符串
  

&安培; Q |艝隭)R墢Lq28}徫廵g'Y钻妽踒˚F

并删除除了中文字符以外的所有内容,它们都是十六进制4E00-9FA5,我想只保留字符串中的那些字符。我试过这条线只留下有效的美国字符:

preg_replace('/[^\x20-\x7E]/', '', $str);

到此:

preg_replace('/[^\x4E00-\x9FA5]/u', '', $str);

但它什么也没输出......我错过了什么吗?我对正则表达式不太满意

1 个答案:

答案 0 :(得分:2)

你非常接近!

preg_replace('/[^\x{4E00}-\x{9FA5}]/u', '', $str);