1.普通字符匹配:
ab+ : 匹配一个a和任意个b 如: ab abb abbbbbb
c : 匹配一个c 如 : abcde 匹配内容: c 匹配开始索引:2 匹配结束索引 3
bcd : 匹配字符串 bcd 如: abcde 匹配内容是: bcd 匹配开始索引是:1 匹配结束索引是:4
2.转换符匹配:
\:转义字符匹配 如: \r \n \t \\ \^ \$ \. 匹配的内容分别是 回车 换行 制表符 \ ^ $ . 这些字符
3.普通字符与转换字符结合匹配:
\$abc : 匹配$abc 如ok$abcok 匹配的内容是 $abc 匹配开始索引是2 匹配结束索引 是6
\d : 匹配任意数字(0~9)
\w : 匹配任意字母,数字或下划线(A~Z,a~z,0~9,_)
\s : 匹配空格,制表符,换页符等空白字符中的任意一个
\. : 匹配除了换行符号(\n)外的任意字符
\d\d : 匹配两个连接出现的数字(0~9任意一个)
如 abc123 匹配内容12 匹配开始索引: 3 匹配结束索引: 5
a.\d : 匹配小写字母a开始后面是一个任意字符(\n除外)最后一个匹配是数字(0~9任意一个)
如 aaa123 匹配到的内容是aa1 匹配开始索引是:1 匹配结束索引是:4
4.自定义匹配表达式:
[ab5@] : 匹配中括号[]内所出现的任意字符 只要字符串中出现 a 或 b 或 5 或 @ 都能匹配成功
如: xxxaxxx bbbbx xkxkxkb klfdjskljflksl5a fldsjlf@dfs12 这些都匹配成功
[abc][bcd] : 匹配中括号[]内所出现的任意字符 如 123ab89 4545bc56 afafabc55 123afdgbcd
[^abc] : 匹配不包含在中括号内的任意字符,也就是字符串不能包含有a,b,c的任何一个字符
如: efccf1 成功 affdf 失败 cb123 失败 c234 失败 b67 失败
[a-f] : 匹配小字母a到f之间的任意一个字母: 如 a122 成功 aaafbc成功 f10成功
[^A-G0-5] : 匹配除了大写A到大写G之间的任意字母,和0到5之间的任意数字外的其它字符,
也就是说不能使用 A B C D E F G 和 0 1 2 3 4 5
5.匹配出现次数
在上面1到4点的基本上加上{n}, n 表示出现匹配的次数
如: abc{2} 匹配成功的 abcabc faccdabcabc
5{5} 匹配成功的 55555 655555 675555577
\w{2} 最少出现两个(字母,数字,下划线) 如: a5_ a5. a_ 5a 5_ 都匹配成功 $5@ 失败
{m,n} : 匹配最少与最少重复出现次数: 如 xg{1,3} 匹配成功 xg xgg xggg都匹配OK
{m,} : 匹配最少重复多少次 如: \d\w{2}\d{3,}
匹配成功: 1a1234 2a234567 6q789687979 1aw123 2qx456 5ex758437957
? : 匹配0次或者1 次 如 a[bc]? 匹配成功 a ab ac
+ : 匹配至少出现1次 相当于{1,} 如o+k 匹配成功: ok ooook ookkkkkkkkk
* : 匹配不出现,或者出现任意次 ,相当于 {0,} 如: \^*b 成功匹配 : "b" "\^^^b"
\d+\.?\d* : 匹配至少出现1次的数字,及出现0次或者1次任意字符(\n除外),和出现或者不出现的数字
如: 1$12.5 \d+ -> 12 \.? -> . 5 -> \d*
go{2,8}gle : 匹配 google goooooooogle
6.抽象意义特殊字符
^ : 表示从字符串的开始地方匹配,不匹配任何字符
$ : 表达从字符串的结尾地主匹配,不匹配任意字符
\b : 匹配一个单调边界,也就是单词与空格之间的位置,不匹配任意字符
如: ^aaa : 从字符串开始位置匹配aaa aaabbbccc 成功 bbbccccaaa 失败 bbbaaaccc 失败
aaa$ : 从字符串结尾位置匹配aaa bbbcccaaa 成功 aaabbbccc失败 cccaaabbb 失败
.\b. : 从单词边界开始匹配,取非单词边界一个任意字符(\n除外) ,
与单词边界一个任意字符(\n除外) 如 : @@@abc -> @@@非单词边界 abc单词边界
所以匹配内容为@a
\bend\b : 匹配单词边界前后 如: testend,okend,end 成功匹配到最后的一个end
| : 使用或匹配 , 左边或者右边匹配成功, 如: YES|NO
匹配成功 : this YES , this NO , this YES or NO
(go\s*)+ : 匹配次数修改 如: Let's go go go 匹配成功 ,匹配内容 go go go
\$(\d+\.?\d*) : 匹配$与小数 如 $12.78 匹配成功 \$ -> $ (\d+\.?\d*) ->匹配小数
7.更多匹配(贪婪模式)与更少匹配(勉强模式):
(d)(\w+) : 匹配d字母后面的一个或者多个字符 如: xxxdxxxd ->dxxxd
(d)(\w+)(d) : 前后匹配d字母,取中间的字符串 如: xxxdxxx dxxxdxxxd
(d)(\w+?) : 匹配d字母后面的一个或者多个字符 如: xxxdxxxd ->dx
(d)(\w+?)(d) : 前后匹配d字母,取中间的字符串 如: dxxxdxxxd ->xxx
<td>(.*)</td> :
匹配所有 <td><p></p>a</td><td><p>b</p></td> => <td><p></p>a</td><td><p>b</p></td>
<td>(.*?)</td> :
至少匹配 <td><p></p>a</td><td><p>b</p></td> => <td><p></p>a</td>
正则引用: 引用()中的表达式匹配到的字符 \1 表示引用第1个括号中内容, \2表示引用第2个括号中内容
('|")(.*?)(\1) 相当于 ('|")(.*?)('|")
(\w)\1{4,} : 表示在一个字母后面至少出现4上相同的字符,相当于 ()\w\w{}4,
如: abccccc -> (\w) -> c \1{4,} -> \w{4,} ->cccc