Presentation is loading. Please wait.

Presentation is loading. Please wait.

正则表达式一点通:正则中的中文.

Similar presentations


Presentation on theme: "正则表达式一点通:正则中的中文."— Presentation transcript:

1 正则表达式一点通:正则中的中文

2 Unicode字符编码表 Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案

3 大家先抛开以前所学 首先使用PHP对“你”进行json_encode var_export(json_encode(“你”));
大家会发现,编码时这个函数把中文转换为了Unicode编码 同样在JavaScript中,使用escape函数一样可以转码 alert(escape(“你“)); 同样,Java中可以使用JDK下面的native2ascii 工具查看字符的unicode编码

4 所以在正则中要匹配中文 JS部分: var pattern=/[\u4e00-\u9fa5]/g;
在正则中,\u加上四位十六进制数,范围从\u4e00(一)开始到\u9fa5(龥 ),就能匹配所有中文 然而在PHP中却不对了: 在PHP中。是用\x代表十六进制数,并且位数超过四位必须要大括号概括 所以在PHP中匹配中文要这么写:[\x{4e00}-\x{9fa5}] 并必须加上 ”u“ 修饰符,字符串如果是utf-8,那么必须要加上u修饰符

5 所以在正则中要匹配中文 Java中 两种都支持 [\\x{4e00}-\\x{9fa5}] [\\u4e00-\\u9fa5]

6 今天你懂”中文“了吗?

7 本课时小测验 问:\u4e00 是哪个中文字 答:中文字 ”一“

8 本课时小测验 问:我要匹配出字符串中的所有”一“,js部分怎么写 答:/\u4e00/g

9 本课时小测验 问:java当中支持修饰符 u吗? 答:不支持,它是php特有的

10 本课时小测验 问:php中匹配utf8下的中文字怎么写正则 答:/[\x{4e00}-\x{9fa5}]/u 。注意最后一个u修饰符一定要写

11 思考题 问:如果字符是gb2312 该怎么写 答:推荐先把字符串转化为utf-8编码。同样使用统一的正则来匹配,不建议不同的编码各一套正则写法。

12


Download ppt "正则表达式一点通:正则中的中文."

Similar presentations


Ads by Google