元字符
\b 代表着单词的开头或结尾,也就是单词的分界处,它只匹配一个位置。
. 匹配除了换行符以外的任意字符。
* 代表的不是字符,也不是位置,而是数量,它指定*前边的内容可以连续重复使用任意次以使整个表达式得到匹配。
\d 匹配一位数字。
\s 匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。
\w 匹配字母或数字或下划线。
^ 匹配字符串的开始。
$ 匹配字符串的结束。
例子:
hi 匹配包含两个连续字符h和i的hi,包括hi,him,high中的hi。而\bhi\b 则会精确匹配hi这个单词。
\bhi\b.*\bTom\b 首先匹配的一个单词hi,然后是任意个换行符之外的字符,最后是Tom这个单词。
字符转义
如果想查找元字符本身的话,例如 . 或者是 * 就会出现问题,这时候就要使用 \ 来取消这些字符的特殊意义。因此,应该使用 \. 和 * 。
数量
正则表达式中所有的限定符:
| 限定符 | 说明 |
|---|---|
| * | 重复零次或更多次 |
| + | 重复一次或更多次 |
| ? | 重复零次或一次 |
| {n} | 重复n次 |
| {n,} | 重复n次或更多次 |
| {n,m} | 重复n到m次 |
例子:
Windows\d+ 匹配Windows后面跟着1个或更多个数字。
^\w+ 匹配整个字符串的第一个单词。
集合
如果想匹配没有预定义元字符的字符集合,只需要在方括号里列出这些字符集合就行了。像 [0-9] 代表的含义和 \d 是完全一样的,也就是一位数字。
分支
使用分支的方法就是用 | 把不同的规则分隔开。像 \d|[a-z] 匹配的是数字或是小写字母。
分组
用小括号可以指定子表达式(也叫做分组),然后就可以指定这个子表达式的重复次数或是对子表达式进行一些其他的操作。
反义
有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外的其它任意字符,这时需要用到反义,常见的反义符号:
| 符号 | 说明 |
|---|---|
| \W | 匹配任意不是字母、数字、下划线的字符 |
| \S | 匹配任意不是空白符的字符 |
| \D | 匹配任意非数字的字符 |
| \B | 匹配不是单词开头或结束的位置 |
| [^x] | 匹配除了x以外的任意字符 |
| [^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |
来源:CSDN
作者:venus_h
链接:https://blog.csdn.net/venus_h/article/details/104265754