快速过一遍
匹配单个字符
字符 .
可以匹配任何一个单个的字符
因为字符 .
在正则表达式中有特殊的含义,如果想搜索 .
的话,需要进行转义: \.
匹配一组字符
[]
定义一个字符集合
-
字符区间
取非 ^
元字符
在正则表达式里有特殊含义的字符,比如 .
表示匹配任意一个字符,[
表示一个字符集合的开始
因为这些元字符在正则表达式里有特殊含义,所以无法用来代表本身。因此这种情况就需要转义
空白字符
元字符 | 说明 |
---|---|
\s | 任何一个空白字符 |
\S | 任何一个非空白字符 |
数字
元字符 | 说明 |
---|---|
\d | 任何一个数字字符 |
\D | 任何一个非数字字符 |
字母和数字
元字符 | 说明 |
---|---|
\w | 任何一个字母数字字符(大小写均可)或下划线字符,等价于 [a-zA-Z0-9_] |
\W | 任何一个非字母数字字符(大小写均可)或下划线字符,等价于 [^a-zA-Z0-9_] |
重复匹配
+
匹配一个或多个字符*
匹配零个或多个字符?
匹配零个或一个字符- 匹配的重复次数
{数字}
设定一个精确的值{数字, 数字}
设定一个区间{数字, }
至少重复多少次
防止过度匹配
所谓“贪婪型”,在进行匹配时,会尽可能地从一段文本的开头一直匹配到这段文本的末尾。而不是从这段文本的开头开始碰到第一个匹配为止
贪婪型元字符 | 懒惰型元字符 |
---|---|
* |
*? |
+ |
+? |
{n, } |
{n, }? |
位置匹配
\b
单词边界
^
字符串开头
$
字符串结尾
子表达式
(
和 )
括起来
命令总结
- 匹配单个字符
.
- 转义
\.
- 匹配一组字符
[]
定义一个字符集合-
字符区间- 取非
^
- 元字符
\s
空白字符\d
数字\w
字母、数字和下划线
- 重复匹配
+
匹配一个或多个字符*
匹配零个或多个字符?
匹配零个或一个字符- 匹配的重复次数
{数字}
设定一个精确的值{数字, 数字}
设定一个区间{数字, }
至少重复多少次
- 防止过度匹配
- 贪婪型元字符
- 懒惰型元字符
- 位置匹配
\b
单词边界^
字符串开头$
字符串结尾