正则表达式
- 个人学习正则表达式记录的一些常用知识;(学完写一些简单的正则表达式应该没有什么问题😀)
1. 入门
举例:比如查找hi这个单词,最简单的是直接输入hi,但是在查找的时候,可能查找到him,high等等;要想要精确查找,使用\bhi\b
;
1.1 元字符
代码 | 说明 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
^ | 匹配字符串的开始 |
$ | 匹配字符串的结束 |
-
\b
单词的开头或结尾,也就是单词的分界处
-
.
.代表 除了换行符以外的任意字符
-
*
(代表数量)* 代表数量,前边的内容可以连续重复使用任意次以使整个表达式得到匹配
-
+
(代表数量)上面的*代表数量可以出现0次,但是+代表数量是至少出现一次
-
\d
匹配一位数的数字,比如0、1、2......
-
\s
任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等
-
\w
字母或数字或下划线或汉字等
1.2 重复出现的字符
常用的限定符
代码/语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
1.3 字符类
[aeiou]:代表匹配任何一个英文元音字母
[.?!] : 匹配标点符号(.或?或!)
[0-9] : 和\d是完全一致的
[a-z0-9A-Z_] : 和\w完全一致
1.4 分支条件
| : 就是或的意思,
\(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8} 这个表达式匹配3位区号的电话号码,其中区号可以用小括号括起来,也可以不用,区号与本地号间可以用连字号或空格间隔,也可以没有间隔
2. 反义
常用反义(就是相对应的大写字母)
代码/语法 | 说明 |
---|---|
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
[^aeiou] | 匹配除了aeiou这几个字母以外的任意字符 |