正则表达式学习之初步案例

^(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。

posted @ 2013-04-17 00:25  TBHacker  阅读(340)  评论(2编辑  收藏  举报