正则表达式整理资料
资料来源:http://www.cnblogs.com/China3S/archive/2013/11/30/3451971.html,向北方博客
一:字符介绍
1.“^" :起始位置,”$“: 终止位置(边界条件)
例如 ^I am a studet$ 这个意思就是必须以I开头,student结尾
2."\b" :代表着单词的开头或结尾,也就是单词的分界处,元字符,只能匹配字母,数字,下划线,汉字。
例如 要在一个字符串里 I am a student 精确找到 am 就需要使用"\bstudent\b", \bAB匹配A,AB\b匹配B
3."\d": 匹配数字
例如 固定格式的电话号码0939-9393838 ,可使用 ^0d{2,3}-d{7}$
4."\w":匹配字母,数字,下划线
例如,要匹配AA999_djj ,使用"\w+" 就是有多个字母,数字,下划线的组合
5."\s":匹配空格
例如:A B C 可使用 "\w\s\w\s\w",如果字符间有多个空格,则直接把"\s+"让空格重复
6."."这个点,是匹配除了换行符以外的任何字符,比\w 多匹配了空格等字符。
例如:A B C 3II3_KKD,此处就等用".+"了,不能用\w+了 ,因为有空格
7."[abc]":只匹配括号内存在的字符
例如:[a-z]可以表示匹配a至z的所有字母,用来控制只能输入英文,还可加上大小写,如[a-zA-Z]
二:量词介绍
1."*" : 重复0次和更多次
例如"aaaaaaaa", a*表示找到所有字符a
2."+": 重复一次或者多次
例如"aaaaaaaa", a+表示找到所有字符a,不同于a*的是,是重复一次和零次的区别
3."?": 重复零次和一次
例如:"aaaaaaaa",a?只会匹配一次,只是一个字符a
4.{n}:重复n次
例如:"aaaaaaaa",a{3}可以匹配到3个a
5{n,m}:重复n次到m次
例如:"aaaaaaaa",a{3,4}可以匹配到3个a和4个a
6.{n,}:重复n次或者更多次
例如:"aaaaaaaa",a{3,}可以匹配到3个a和多个a
有了这些量词,就可以理解匹配的各种正则了,比如说刚才的电话号码^0\d+-\d{7}$,这里+表示,至少重复一次数字,可以是01(2222....)-3434343。
如果是^0\d*-\d{7}$,这里的*表示可以是不重复数字,0次或者n次。如:0(12222....)-3434343。
如果是^0\d?-\d{7}$,这里的?表示可以是0次和1次的数字。如:0(1)-3434343。