正则表达式学习之初步案例
^(c|D|R|S).*
说明:姓氏以C、D、R或S开头
(0|1|2|3|4|5|6|7|8|9)
说明:匹配数字0~9
\d
说明:元字符表示数字0~9
\d\d\d
说明:会匹配012、234、345、999
ABC[0-9]*
说明:表示匹配一个大写的A。如果匹配成功,尝试匹配一个大写的B。
如果匹配成功,尝试匹配一个大写的C。如果全部三个大写字符都匹配,尝试匹配零个或多个数字。
*操作符,匹配0次或多次
+操作符,匹配1次或多次
ABC[0-9]+
说明:匹配ABC12,匹配ABC123,不匹配ABC
?操作符,匹配0次或1次
ABC[0-9]{3}
说明:数字匹配三次
ABC[0-9]{1,3}
说明:后面的数字出现1到3次
ABC[0-9]{2,}
说明:后面的数字匹配2到无穷次
..C[0-9][0-9]
说明:.匹配任意内容
.{2}C[0-9][0-9]
说明:与上面的等价
\.匹配元素.
案例:
\.com
说明:只匹配.com
不匹配acom或bcom
而.com则匹配acom或bcom
\w匹配英文字母、数字或下划线
\w{3}
说明:匹配三个英文字母、数字或下划线
\W匹配与\w的内容相反
其实\w匹配的内容等同于[A-Za-z0-9_]
\d匹配的内容等同于[0-9]
\n匹配换行符(换行符是看不见摸不着但是确实存在的)
\\匹配反斜杠\
案例:
http.*\\.*
说明:匹配http然后匹配任意,两个任意之间必须存在\的行才会匹配。
所以上述的案例会匹配如下的内容
http://www.w3.org\tr/
http://www.XMML.com\default.svg
http://www.wiley.com/
http:\\www.wrox.com/
http:\\www.example.org/
这些内容都包含\斜杠
Sm[yi]th
说明:匹配Smith或Smyth
pe[aei]r
说明:匹配pear、peer或peir但不匹配per
[CD][a-z]+
说明:匹配以C或D开头,之后跟任意数量小写字符的内容
效果等同于(C|D)[a-z]+
[rst]ight
等同于
[r-t]ight
#[0-9a-fA-F]{6}
说明:
表示十六进制
((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])
说明:表示IP地址
(最好能把分析的思路展示出来)
查找HTML中的标题元素
<(h1|h2|h3|h4|h5|h6)>
或者
<h[123456]>
或者
<h[1-6]>
h[_^3]
说明:
^放中间只表示一个普通的字符
表示匹配h_或者h3或者h^
h[^3]
说明:
^放前面表示非
表示匹配3之外的任意字符
比如h2,h1,h4,h_
h[^3-5]
说明:
表示匹配3到5之外的字符,包括字母,特殊字符等等。
^表示一个字符串或一行的开始位置
$表示一个字符串或一行的节数位置
\<和\>匹配一个单词的开始和结束位置
\b匹配一个单词的边界
\bA与\<A是等效的。
含义:匹配词开始处的词边界。
匹配美国电话
(123) 123-4567
\(\d{3}\) \d{3}-\d{4}
Hello(?= World)
说明:
匹配后面有单词World的Hello
Hello World匹配
Hello Worlda匹配
Hello Jim不匹配
Hello(?= World\b)
说明:
匹配后面有单词World的Hello
Hello World匹配
Hello Worlda不匹配
Hello Jim不匹配
Hello(?! World\b)
说明:
匹配后面有单词World的Hello
Hello World不匹配
Hello Worlda匹配
Hello Jim匹配
使用正则,要考虑好灵敏度和特殊性,既要高灵敏,又要能排除不需要的内容
\bcat\b只能匹配cat不能匹配cats。