本文首写于公司小组内部分享。
先前听导师说过正则效率不算高,就特意去看了一点相关的,做个笔记
看的时候想到了先前写过正则匹配英文邮箱,突然想到可以有中文的邮箱,遂去写了一下,遇到个坑。
\w
匹配【字母、数字、下划线、汉字】,这几乎是大众认识,但这并不准确。看下图,俄文字符都匹配出来了,查了好些资料,发现
\w,
他匹配的是包括下划线的任何单词字符。类似但不等价于“[ A-Za-z0-9_ ]”,这里的"单词"字符使用Unicode字符集,包括俄文等单词如а。
如果想要匹配
中文,英文字母,数字,下划线(_),该怎么办呢?
正确做法:
[\u4e00-\u9fa5
_
a-zA-Z0-9]
附上自己写的英文、中文邮箱匹配实录:
或访问 CSDN 《正则表达式匹配邮箱》。
有任何问题欢迎批评指正。