1.基本用途
正则表达式两种基本用途:搜索和替换。
2.单个字符匹配(.)
.字符可以匹配任何单个字符,类似于sql中的_。注意特殊字符匹配时要使用反斜杠\\。
3.匹配一组字符([])
- []之间的所有字符都是该集合的组成部分,字符集合的匹配结果是能够与集合中任何一个成员匹配的文本。
- 字符-可以以字符区间的方式给出,例如:[0-9]等同于[0123456789]。常用的还有[a-zA-Z]。
- 元字符^表明相对一个字符集和进行取非匹配,与逻辑非运算类似。
4.元字符
对元字符进行转义要用到\。如\[, \d, \]等。
- \d任何一个数字字符;
- \D任何一个非数字字符
- \w任何一个字母数字或下划线,等于[a-zA-Z0-9_];
- \W相当于[^a-zA-Z0-9_]
- \s任何一个空白字符;
- \S任何一个非空白字符。
贪婪型or懒惰型
贪婪型 | 懒惰型 |
+ | +? |
* | *? |
{n,} | {n,}? |
在防止过度匹配的情况下,可以使用懒惰型元字符。
5.重复匹配
- +匹配一个或多个字符;
- *匹配零个或多个字符
- ?匹配一个字符(或字符集合)的零次或者一次出现,表示可能出现或者不出现的情况。例如https?
- {n}设定重复次数,把数值卸载他们中间即可。
- {m,n}为重复匹配次数设定一个区间,例如{2,4}表示至少重复2次、最多重复4次。
6.位置匹配
- 单词边界:\b限定符制定单词边界。如\bcat\b。
- 字符串边界:用^定义字符串开头,$定义字符串结尾。
ps: