正则中分组的概念有时可以帮助我们很方便的把字符中的特定的或是符合我们需求的部分摘取出来。
比如我们需要把邮箱中的用户名取出来。
有个邮箱 Narcissus@163.com
,我们需要把这个邮箱中的用户名也就是 Narcissus 这个英文匹配出来。可以写个分组的正则:
var reg = /([0-9a-zA-Z_.-]+)[@]([0-9A-Za-z_-]+)(([.][a-zA-Z]+){1,2})/;
说明:
([0-9a-zA-Z_.-]+)
匹配用户名([0-9A-Za-z_-]+)
匹配主机名(([.][a-zA-Z]+){1,2})
匹配域名
测试:
这样我们都匹配到了。
之所以会出现两个 .com
,是因为 (([.][a-zA-Z]+){1,2})
这里是嵌套分组 ([.][a-zA-Z]+)
这是一个小分组。