一、正则表达式基础知识:
我们先从简单的开始。假设你要搜索一个包含字符“cat”的字符串,搜索用的正则表达式就是“cat”。如果搜索对大小写不敏感,单词“catalog”、“Catherine”、“sophisticated”都可以匹配。也就是说:
正则表达式:cat
匹配:cat,catalog,Catherine 等等。
1.1句点符号.
想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束。这时候可以用句点符“ . ” 这是因为句点符号匹配所有字符,包括空格、Tab字符甚至换行符:
可以用正则表达式 t.n
可以匹配:tan,t n ,t#n,
1.2方括号符号[]
可以在方括号(“[]”)里面指定看来有意义的字符,这时候只有方括号里面指定的字符才能参与匹配,但是是唯一的。也就是说t[aeio]n可以匹配tan,ten,tin,ton 但是不匹配taen。所以说方括号内只能匹配单一字符:
正则表达式:t[aeio]n
匹配:tan,ten,ton,tin
1.3或符号 |和小括号()
小括号是为了满足 能多个字符匹配的 例如你想匹配toon的话,那么就可以用t(a|e|i|o|oo)n 这时候用小括号和或符号就能实现
正则表达式:t(a|e|i|o|oo)n
匹配:tan,ten,ton,tin,toon
1.4大括号和特殊符号{},*,+,?
这些符号代表了出现的次数
*代表了可以出现0次1次或者多次
+代表了可以出现1次或者多次
?代表了出现0次或者一次
{n}代表了出现n次
{n,m}代表了出现从n次到m次中的任意一次
例如:999-99-9999 可以表达为[0-9]{3}\-[0-9]{2}\-[0-9]{4} 其中的\是转义符
例如:999-99-9999 或者不要 - 这样就可以表达为:[0-9]{3}\-?[0-9]{2}\-?[0-9]{4}
1.5 否符号 ^
如果用在[]内^表示不想匹配的字符 例如 [^x]代表匹配所有的单词但是以x开头的字母除外
如果是出现在[]外 ^[]代表以[]里面的字符开头的字符串
1.6空白符\s
例如匹配 日期 June 26,1951
[a-z]+\s+[0-9]{1,2},\s*[0-9]{4}
这里面的\s匹配所有的空白字符,包括tab
1.7其他符号:
\d [0-9]
\D [^0-9]
\w [A-Z0-9]
\W[^A-Z-0-9]
\s[\t\n\r\f]
\S[^\t\n\r\f]
二:应用实例
简单的IP判定 \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
自己先学习到这里 欢迎补充讨论