最近在看正则表达式,一开始感觉挺难的,好多好多的东西需要背下来,但后来看了一部分之后,感觉也不是非常难啊,但也不简单 !!!!!!!!!!!!!!
基本元字符
. 元字符点匹配除换行符之外的任何单个字符(字母、数字、下划线) (1个)
* 匹配位于星号之前的任意个字符 (0~无穷个)
+ 匹配位于+之前的一个或多个字符 (1~无穷个)
| 匹配位于 | 之前或之后的字符
^ 匹配行首
$ 匹配行尾
? 匹配位于问号之前的零个或一个字符 ( 0 或 1 个)
\ 表示位于\之后的为转义字符
[ ] 匹配位于[ ] 中的任意一个字符
() 将位于() 内的内容当作一个整体
{ } 按{}中的次数进行匹配
转义字符
\b 匹配单词头或单词尾
\B 与上相反
\d 匹配任何数字
\D与上相反 等价于< == > [^\d]
\s 匹配任何空白字符(空格、制表符、换行符)
\S与上相反
\w 匹配任何字母、数字及下划线 [a-zA-Z0-9_]
\W与上相反
不可打印字符
<\a> 振铃
<\e> 转义
<\f> 换页
<\n> 转行
<\r> 回车
<\t> 水平制表符
<\v> 垂直制表符
(?i)[A-F0-9]不区分大小写
<{1}> 重复之前的记号1次 <ab{1}c> <==> <abc>
<{0}> 重复之前的记号0次,从正则表达式删除 <ab{0}c> <==> <ac>
<\b[a-f0-9]{1-8}\b> 匹配一个包含1~8个数字的十六进制整数
<\b\d{100}\b> <==> <\b\d{100,100}\b>
<\d{1,}> 匹配至少一个数字 <==> <\d+>
<\d{0,}> 匹配至少0个数字 <==> <\d*>
<h{0,1}> 匹配一次<h> 或者 根本不存在 <==> <h?>
<(?:abc){3}> <==> <abcabcabc>
<(e\d+)?> 匹配一个e之后跟着至少一个数字,或者一个长度为0
<(\d\d){1,3}> 匹配一个包含2个、4个、6个数字的字符串
<(\d\d){3}> <==> <\d\d\d\d(\d\d)>
<p>.*?</p> 匹配标签<p></p>及两者之间的所有文本
<html>(?>.*?<head>)(?>.*?<title>)(?>.*?</title>)(?>.*?</head>)(?>.*?<body[^>]*>)(?>.*?</body>).*?</html> 匹配一个完整的HTML文件
如有错误,请指出,谢谢!