美文网首页
php正则表达式替换字符串中汉字以外的任意字符

php正则表达式替换字符串中汉字以外的任意字符

作者: 体胖勤跑步 | 来源:发表于2016-04-13 22:33 被阅读0次

正则匹配中文汉字根据页面编码不同而略有区别:
UTF-8编码:[x{4e00}-x{9fa5}]+/u

$str = "账单123";
//GBK/GB2312使用:
preg_match_all("/[\x80-\xff]+/", $str, $chinese);
//UTF-8 使用:
//preg_match_all("/[\x{4e00}-\x{9fa5}]+/u", $str, $chinese);
print_r($chinese);

乱码应该就是编码没弄对了
之所以乱码,我猜想有这些原因:
文档标题没加utf-8编码标识:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
文档编码非utf-8,这个使用编辑器另存为即可;

你的字符串来源非utf-8,比如是从别处抓取而来,比如是从文件中读取而来,而非在自己的页面上定义,那么这个字符串自然就是源头处的编码了,可以使用PHP转码:

$str= iconv('GBK','UTF-8′,$str);
//或:
//$str= mb_convert_encoding($str,'UTF-8','GBK');

string iconv ( string $in_charset , string $out_charset , string $str )
第一个参数:内容原的编码
第二个参数:目标编码
第三个参数:要转的字符串
函数返回字符串

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
第一个参数:要处理的字符串
第二个参数:目标编码
第三个参数:内容原编码
函数返回字符串

相关文章

  • php正则表达式替换字符串中汉字以外的任意字符

    正则匹配中文汉字根据页面编码不同而略有区别:UTF-8编码:[x{4e00}-x{9fa5}]+/u $str =...

  • 正则表达式

    正则表达式 元字符代码说明.匹配除换行符以外的任意字符\w字母、数字、下划线或汉字\s匹配任意空白符\d匹配数字\...

  • 正则表达式『常用标识符汇总』

    正则表达式 常用的元字符 代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白字...

  • PHP str_replace() 函数

    把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai":

  • php str_replace函数怎么用?

    str_replace()是PHP中的一个内置函数,用于对字符串或数组进行替换操作,以其他字符替换字符串或数组中的...

  • react native 截取/替换字符串, 字符串转数组, 字

    截取字符串 判断是否包含某个字符串 替换字符串 字符串转数组 数组转字符串 字符串中数字的个数 7.字符串中汉字的...

  • 正则表达式(W3C笔记)

    通过使用正则表达式,可以: 测试字符串中的模式 替换文本 基于模式匹配从字符串中提取子字符串 正则表达式的应用领域...

  • 正则表达式-ios

    正则表达式简单说明# 语法: 匹配除换行符以外的任意字符 \w匹配字母或数字或下划线或汉字 \s匹配任意的空白符 ...

  • 正则表达式

    正则表达式 1.常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s...

  • 微信小程序 判断字符串中是否有中文

    思路:用正则/[^\x00-\xff]/g匹配汉字,将匹配到的汉字替换为**,使得字符串长度改变。如果替换后的字符...

网友评论

      本文标题:php正则表达式替换字符串中汉字以外的任意字符

      本文链接:https://www.haomeiwen.com/subject/jhkglttx.html