一,限定符
1. ? :代表前面的字符需要出现0次或者1次(可理解为前面的字符可有可无)
例:used? 可以匹配到 use和used
2. * :代表前面的字符需要出现0次或者多次
例:ab*c 可以匹配到ac ,abc ,abbbbbbbc等
3. + :匹配出现一次及以上的字符
例:ab+c 可以匹配abc ,abbbbbbbbbc等但无法匹配到ac
4. {} :规定字符出现的次数或者范围
例:ab{6}c 匹配到abbbbbbc (b出现了6次)
ab{2 , 4}c 匹配到abbc ,abbbc , abbbbc (b出现了2次到4次)
ab{2 ,}c (b出现2次以上)
如果要匹配多个字符,要将字符用()包住
例:(ab)+ 匹配一次或者多次ab的出现 ab , ababcd ,abababababc ,abbc
二,或 运算
1. | :匹配前面字符或者后面字符
例:a (cat | dog) 匹配 a cat或者a dog (这里()不能省略,如果不写 就会匹配到a cat或者dog)
(ab)|(cd) 匹配ab或者cd
2. [ ] :要求匹配的字符必须出自方括号内,也可以给出匹配范围
例: [abc]+ 匹配abc , aabbcc, abbcabacbacb等
[abc] 匹配a或b或c 等同于 [a-c]
[a - z]+ 所有小写英文字符
[A - Z]+ 所有大写英文字符
[0 - 9]+ 所有的数字字符
注:可以混合使用 如:[a - zA - Z0 - 9]+ 所有的英文字符和数字字符
3. [^] :脱字符 代表除 ^ 后面列出的以外的字符
例:[^0-9]+ 所有的非数字字符 (包括换行符)
三,元字符
1. \d :数字字符 (等同于[0-9]+)
\D :非数字字符
2. \w :单词字符(英文、数字、下划线)
\W :非单词字符
3. \s :空白符(包括Tab和换行符)
\S :非空白字符
4. \b :标注字符的边界(全字匹配)
5. . :代表任意字符但是不包含换行符
6. ^ : 匹配首字符
例: ^a 匹配以小写字母 a 开头的字符串
7. $ : 匹配尾字符
例: a$ 匹配尾字符是小写字母 a 的字符串
四,贪婪/懒惰算法
<.+> 默认贪婪匹配“任意字符”
<.+?> 懒惰匹配“任意字符”
例: <span><b>This is a sample text</b></span>
<.+> 会全选字符串(贪婪算法) <span><b>This is a sample text</b></span>
<.+?> <span><b>This is a sample text</b></span>