[正则表达式]匹配Unicode

Posted yiyide266

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[正则表达式]匹配Unicode相关的知识,希望对你有一定的参考价值。

一、php[PCRE]之Unicode

PCRE支持的16进制字符编码转义符有

x00-xFF,或x{num},num为任意位16进制数

但并不支持u0000-uFFFF这的形式

PCRE运用/u模式去处理UTF-8编码字符,这是PCRE特有的,示例代码

$str = ‘中asfdsf个业上‘;
$pattern = ‘/[x{4E10}-x{4E2F}x{4E0A}]/u‘;
$matchs = array();
$result = preg_match_all($pattern, $str, $matchs);
var_dump($result, $matchs);

示例中“中个业上”将会被匹配,因为字符组中x{4E10}-x{4E2F}匹配了“中个业”所在的Unicode区间,x{4E0A}对应的是“上”;

 

二、javascript

JavaScript支持的16进制字符编码转义符有

x00-xFF, u0000-uFFFF

示例代码

var str = "中asfdsf个业上";
var regExp = /[u4E10-u4E2Fu4E0A]/g;
console.log(str.match(regExp));

示例中“中个业上”将会被匹配,原因同上;

以上是关于[正则表达式]匹配Unicode的主要内容,如果未能解决你的问题,请参考以下文章

用 Java 正则表达式匹配(例如)一个 Unicode 字母

正则表达式入门匹配unicode和其他字符

匹配正则表达式中的 Unicode 字符

Unicode 在 UtralEdit 正则表达式 如何表达,或者匹配汉字...

Java正则之Unicode属性匹配的那些事

Java正则之Unicode属性匹配的那些事