一、 限定符
-
❓
前一个字符有 0 - 1 个
-
✳
前一个字符有 0 - n 个
-
➕
前一个字符有 1 - n 个 -
{x,y}
前一个字符出现 x 到 y 次 (包括 x 次和 y 次)
-
{x,}
前一个字符出现 x 次以上
-
(mn)
多个字符匹配
二 、或运算符
- (m|n)
匹配 m 或者 n
如果不写括号,则变成 a cat 或者 dog
三、 字符类
-
[xyz]
匹配字符来自于 [] 中的内容
-
[a-zA-Z0-9]
匹配符合 a-z、A-Z、0-9 的字符
-
[a-zA-Z0-9] 组合使用
-
[ ^xyz]
所有不符合 [] 中得内容
四、元字符
-
\d
数字
-
\w
字母、数字、下划线
-
\s
空白符 (包含 tab 和 换行符)
-
\D
非数字字符
-
\W
非数字、字母、下划线
-
\S
非空白符
-
.
任意字符,不包含换行符
-
^
匹配行首
-
$
匹配行尾
五、贪婪与懒惰匹配
概念:来自网络:贪婪匹配与懒惰匹配的区别
- 贪婪匹配:尽可能多地匹配字符
- 懒惰匹配:即匹配尽可能少的字符,但是要匹配出所有的结果
当想要匹配带有 <> 的字符时,根据之前的知识可以这样写
由于 的 < 和 的 > 匹配上了,因此导致 Content = “ClickMe” 也被匹配上。
因此可以加上 ? 使得该匹配由 贪婪匹配 变为 懒惰匹配,从而达到想要的效果
六、实例
匹配所有十六进制的 RGB 颜色值
条件
- #
- a - f 或 A - F
- 0 - 9