常用正则表达式——中文匹配、拉丁匹配

时间:2024-03-17 18:11:17

最近写脚本发现正则也挺有用的,于是就研究了一下。

 

总结起来使用正则表达式来匹配中文、韩文、日文、拉丁等范围的字符非常方便。这里也用到了unicode编码表相关知识,下面给出wiki的具体链接,有兴趣的童鞋可以去看看。

Unicode字符平面映射:

http://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%B9%B3%E9%9D%A2%E6%98%A0%E5%B0%84

Unicode字符列表:

http://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8

 

中(包括繁体)日韩字符:[\u2E80-\u9FFF]

拉丁字符:([\u00A0-\u00FF]|[\u0100-\u017F]|[\u0180-\u024F])

中(包括繁体)字符:[\u4E00-\u9FA5]

 

这里拉丁我的典型应用时匹配汉字的音标:

 

下面是测试文档:

然后把范围扩大到^[\u2E80-\u9FFF]+
$, 这样倒是都通过了, 这个应该就是匹
配中日韩文字的正则表达式了, 包括我們
*省還在盲目使用的繁體中文

sdfsdf,sdjsldj,sdj;lasjdfiselfes;lf
sjs;ldkjfie;sldijf  n-bottom: 0\'>dā<
/p><pèsssdsddsàddssdsdchūnchúnchǔng
uī;guǐ;guìhūn;hún;hǔn;hùn

 

匹配结果截图:

 

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

补充部分:

虽然上面的工具是可以正确识别上面正则表达式的,但是对于有些工具(例如:文本编辑器emeditor、notepad++等)却不好使。而对于这些工具一般使用如下格式来使用匹配范围字符。

例如:

中(包括繁体)日韩字符:[\x{2E80}-\x{9FFF}]

拉丁字符:([\x{00A0}-\x{00FF}]|[\x{0100}-\x{017F}]|[\x{0180}-\u024F}])

中(包括繁体)字符:[\x{4E00}-\x{9FA5}]