同样的我们需要把这个表达式拆开运行,这样你才能知道错在哪里。
因此我们先把数字提取出来,我们用表达式=REGEXP(A1,"\b[0-9]{2,}")提取数值,,发现数值能提取出来
然后我们再提取字母数字和字母出来=REGEXP(A1,"\b[0-9a-zA-z]{2,}"),发现也能正常提取出来,因此出现问题只能是@和.的位置上
最后我们就把中括号优化一下,直接输入=REGEXP(A2,"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}")表达式,我们发现能正常提取数值开头的邮箱了
同样的我们来解答一下在上一篇文章里面这A-Za-z,我们最开始是A-z这样也包含在里面的,从以下表达式我们可以看到A-z他实际上是包含大小写字母的,但是为了规范书写,我们依然写成A-Za-z格式
1)、[A-Za-z0-9._%+-]+:这部分用于匹配电子邮件地址的用户名部分,可以包含:
大写字母(A-Z)、小写字母(a-z)、数字(0-9)、点号(.)、下划线(_)、百分号(%)、加号(+)、减号(-)、
2)、+ 量词表示前面的字符类至少出现一次,可以出现多次。
3)、@:匹配电子邮件地址中的 '@' 符号。
4)、[A-Za-z0-9.-]+:这部分用于匹配电子邮件地址的域名部分,可以包含:
大写字母(A-Z)、小写字母(a-z)、数字(0-9)、点号(.)、减号(-)
5)、+ 量词表示前面的字符类至少出现一次,可以出现多次。
6)、\.:匹配顶级域名前的点号。由于点号在正则表达式中是特殊字符,代表任何字符,因此需要用反斜杠 \ 来转义,使其作为字面量匹配。
7)、[A-Za-z]{2,}:这部分用于匹配顶级域名部分,可以包含:
大写字母(A-Z)、小写字母(a-z)
8)、{2,} 量词表示前面的字符类至少出现两次,没有上限。
领取专属 10元无门槛券
私享最新 技术干货