正则表达式思维: 以单个字符的视角去考虑,而不是用单词或句子的视去考虑.
--> 比如 cater,是首先以c开头,c后面接着字符a,a后面接着t,t后面接着e,最后以字符r结尾. 而不是单词cater.
思路: 字符出现的位置 --> 到底是哪个字符 --> 字符出现的次数 -->其他
匹配 单个字符 的元字符 | ||
元字符 | 解释 | |
. | 点号 | 匹配 单个任意字符 |
[...] | 字符组 | 匹配 单个列出的字符 |
[^...] | 排除型字符组 | 匹配 单个未列出的字符 |
\char | 转义字符 | 若char 是元字符 或 转义序列无 特殊含义时, 匹配char对应的普通字符 |
匹配 位置 的元字符 | ||
元字符 | 解释 | |
^ | 脱字符 | 匹配 一行的开头位置, 返回行 |
$ | 美元符 | 匹配 一行的结束位置, 返回行 |
\< | 单词分界符 | 匹配 单词的开始位置, 单词由数字和字母组成 返回单词 |
\> | 单词分界符 | 匹配 单词的结束位置,单词由数字和字母组成 返回单词 |
提供 计数功能 的元字符 | |||
元字符 | 解释 | ||
? | 问号 | 量词 | 容许匹配一次, 但非必须 (0 或 1)次,即可选项 |
* | 星号 | 可以匹配任意多次,也可以不匹配 [o,+∞)次 | |
+ | 加号 | 至少匹配一次,至多可能任意次 [1,+)次 | |
{min, max} | 区间量词 | 至少min次,至多max次 [min, max]次 |
计数功能的元字符使用时放在字符或字符集的后面. 下面例子中, char表示单个字符,charset表示字符集合:
char? charset? char* charset* char+ charset+ char{min,max} charset{min,max}
其他元字符 | ||
元字符 | 解释 | |
子表达式|子表达式 | alterbnation | 匹配 任意分隔的的表达式, 与( )组配合使用: (子表达式|子表达式) |
(...) | 括号 | a.限定多选结构的范围 b.标注量词作用的元素 c.为反向引用“捕获”文本 |
\1, \2, ... | 反向引用 | 匹配之前的第一,第二组括号内的字表达式匹配的文本 |
- | 连字符 | 表示一个范围,与字符组/排除型字符组配合使用:[...-...] [^...-...] |
子表达式: 指的是整个正则表达式中的一部分,通常是 括号内的表达式 ,或者是 由 | 分隔的多选分支