正则效率,\w误区

来源:互联网 发布:常用的数据库 编辑:程序博客网 时间:2024/04/27 16:48
本文首写于公司小组内部分享。

先前听导师说过正则效率不算高,就特意去看了一点相关的,做个笔记
http://note.youdao.com/share/?id=cb801321e015542b87575b8c6d39748b&type=note 
http://note.youdao.com/share/?id=18d43e79ded05c812488544eff18412b&type=note 

看的时候想到了先前写过正则匹配英文邮箱,突然想到可以有中文的邮箱,遂去写了一下,遇到个坑。
\w 匹配【字母、数字、下划线、汉字】,这几乎是大众认识,但这并不准确。看下图,俄文字符都匹配出来了,查了好些资料,发现\w他匹配的是包括下划线的任何单词字符。类似但不等价于“[ A-Za-z0-9_ ]”,这里的"单词"字符使用Unicode字符集,包括俄文等单词如а

如果想要匹配中文,英文字母,数字,下划线(_),该怎么办呢?
正确做法:[\u4e00-\u9fa5_a-zA-Z0-9]
附上自己写的英文、中文邮箱匹配实录:
http://note.youdao.com/share/?id=6b2b0063b7b9963959fca3750b931baa&type=note 
或访问 CSDN 《正则表达式匹配邮箱》。
有任何问题欢迎批评指正。

1 0
原创粉丝点击