请教正则表达式中(括号) [方括号] {大括号}的区别
之前遇到要用正则判断输入字符串的小需求中遇到了问题,连续的字符串不知道怎么判断。如邮箱结尾的.com .cn .net等。
于是乎查阅资料:
括号() : 括号是多个匹配,它把括号内的当做一组来处理,易做图一些多选的范围,比如上面的需求只能是com cn net结尾的用括号就是最好的选择。
括号能提取字符串,如(com|cn|net)就可以易做图,只能是com或cn或net。
括号将括号里面的内容作为一组,这就是与[]不同的地方。
方括号[]: 方括号是单个匹配,如[abc]他易做图的不是abc连续出现,而是只能是其中一个,这样写那么规则就是找到这个位置时只能是a或是b或是c;
方括号是正则表达式中最常用的,常用的用法有:[a-zA-Z0-9]匹配所有英文字母和数字,[^a-zA-Z0-9]匹配所有非英文字母和数字。
大括号{}: 大括号的用法很简单,就是匹配次数,它需要和其他有意义的正则表达式一起使用。
比如[a-c]{2}意思就是匹配a-c之间的一个字母出现且只出现两次;
比如(com){1}意思就是com必须出现一次 zhaoxi.net
比如\W{1,3}意思就是非字母数字最少出现一次最多出现3次。
小结:正则表达式看起来很复杂但是学起来感觉一个顺序从左到右感觉又很容易,虽然正则表达式很容易懂,但是想要灵活应用却不容易。