基础 - 匹配中文

  • 作者:KK

  • 发表日期:2017.7.9


要点速读

  1. /[\u4E00-\u9FA5]+/能匹配到abc中国人123里的“中国人

  2. [\u4E00-\u9FA5]是Unicode的中文编码区间

  3. 但是在PHP里要写成#[\x{4E00}-\x{9FA5}]+#u这样,区间里不是\u而是\x,而最后还要加上小写u来开启一个UTF8字符模式(大概这么说吧,其实不准确,自己深入学习吧)


JS代码

console.log(
	'abc中国人123'.match(/[\u4E00-\u9FA5]+/)[0] // 中国人
);

console.log(
	'52345abc'.match(/[\u4E00-\u9FA5]+/) // null
);

PHP代码

header('Content-type:text/plain');

preg_match('#[\x{4E00}-\x{9FA5}]+#u', 'abc中国人123', $matchResult1);
print_r($matchResult1); // 中国人

preg_match('#[\x{4E00}-\x{9FA5}]+#u', '52345abc', $matchResult2);
print_r($matchResult2); // 空数组,失败