正则表达式的相关知识,内容包括简介、元字符、常用字符集、零宽度断言、标志、贪婪与惰性匹配。
一、简介
正则表达式是一种匹配主体字符串的模式,把常用规则和套路背下来,然后多用多熟
_
推荐链接:
我在这里把比较重要的概念摘录一下
_
二、元字符
. |
匹配任意单个字符除了换行符 |
[] |
字符种类,匹配方括号内的任意字符 |
[^ ] |
否定的字符种类,匹配除了方括号里的任意字符 |
* |
匹配>=0个重复的在*号之前的字符 |
+ |
匹配>=1个重复的+号前的字符 |
? |
标记?之前的字符为可选 |
{n,m} |
匹配num个大括号之前的字符或字符集 (n <= num <= m) |
(xyz) |
字符集,匹配与 xyz 完全相等的字符串 |
| |
或运算符,匹配符号前或后的字符 |
\ |
转义字符,用于匹配一些保留的字符 [ ] ( ) { } . * + ? ^ $ \ | |
^ |
从开始行开始匹配 |
$ |
从末端开始匹配 |
三、常用的字符集
. |
除换行符外的所有字符 |
\w |
匹配所有字母数字,等同于 [a-zA-Z0-9_] |
\W |
匹配所有非字母数字,即符号,等同于: [^\w] |
\d |
匹配数字: [0-9] |
\D |
匹配非数字: [^\d] |
\s |
匹配所有空格字符,等同于: [\t\n\f\r\p{Z}] |
\S |
匹配所有非空格字符: [^\s] |
\f |
匹配一个换页符 |
\n |
匹配一个换行符 |
\r |
匹配一个回车符 |
\t |
匹配一个制表符 |
\v |
匹配一个垂直制表符 |
\p |
匹配 CR/LF(等同于 \r\n),用来匹配 DOS 行终止符 |
_
四、零宽度断言(前后预查)
?= |
正先行断言-存在 |
?! |
负先行断言-排除 |
?<= |
正后发断言-存在 |
?<! |
负后发断言-排除 |
_
五、标志
i |
忽略大小写 |
g |
全局搜索 |
m |
多行修饰符:锚点元字符 ^ $ 工作范围在每行的起始 |
六、贪婪匹配与惰性匹配
- 正则表达式默认采用贪婪匹配模式,在该模式下意味着会匹配尽可能长的子串
- 我们可以使用 ? 将贪婪匹配模式转化为惰性匹配模式
「@浪里淘沙的小法师」_