最近写脚本发现正则也挺有用的,于是就研究了一下。
总结起来使用正则表达式来匹配中文、韩文、日文、拉丁等范围的字符非常方便。这里也用到了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}]