在《正则表达式必知必会》中学习
- 可以是纯文本,全文匹配,其中可以使用 . 来匹配任意一个字符,对于类似 . 这种由特殊含义的字符,在正则表达式中被称为元字符,当希望匹配本身这个字符时,需要使用 \ 进行转义
- 匹配一组字符使用 [ 和 ] ,构成字符集合,- 在 [ 和 ] 中起到连接符的作用,常用的字符集合有: 匹配一组字符使用 [ 和 ] ,构成字符集合,- 在 [ 和 ] 中起到连接符的作用,常用的字符集合有:
- [0-9] 或 \d 匹配0到9某个数字,取反 [^0-9] 或 \D
- [a-z] 匹配a到z的所有小写字母,以及类似集合如:[a-f]、[A-Z]、[a-zA-Z]等
- [0-9a-zA-Z_] 或 \w 匹配任何一个数字字母或者下划线,取反 [^0-9a-zA-Z_] 或 \W
- [\f\n\r\t\v] 或 \s 匹配空白符,其中分别是换页符、换行符、回车符、制表符(Tab)、垂直制表符,取反, [^\f\n\r\t\v] 或 \S
- [\b] 匹配对退格字符 - 对于处理重复字符情况下的匹配,元字符有:
元字符 | 匹配范围 |
---|---|
+ | 匹配一个或多个字符 |
* | 匹配零个或多个字符 |
? | 匹配零个或一个字符 |
对于重复次数也可以特殊指定,使用 { 和 } 例如: aps{5} 可以匹配 apsssss,或者aps{2,3} 匹配apss 或apsss,也可以aps{2,}最少2个s 或 aps{2}最多2个s
防止过度匹配
贪婪型元字符 | 懒惰型元字符 |
---|---|
* | *? |
+ | +? |
{n,} | {n,}? |
-
边界匹配
\b 用来匹配单词边界,及匹配 \w 范围内的字符与一个 \w范围内字符的交界处
\B 用来匹配 前后都是\W范围的字符交界处
^匹配一个字符串的开头 $匹配一个字符串的结束 -
分行匹配模式
(?m) 可以开启分行匹配模式,但是很多正则表达式中对此并不支持
例如在JavaScript中 可以使用 (?m)\s*//.*$ 匹配整个文本中所有的单行注释,在这种情况下,^和$匹配的是换行符的开始和结束