学习视频
学习工具
10分钟快速掌握正则表达式
限定符
限定符 | 含义 | 案例 | 案例结果 |
---|---|---|---|
? | 前面一个字符出现 0\1 次, 即可有可无 | used? | 1. use 2. used |
* | 前面一个字符 n (n ≥ 0) 次 | ab*c | 1. ac 2. abc 3. abb… c |
+ | 前面一个字符 n (n ≥ 1) 次 n | ab+c | 1. abc 2. abb… c |
{} | 前面一个字符出现的次数范围或指定次数 | 1. b{2} 2. b{2,} 3. b{2,6} | 1. bb 2. bb… 3. 2 至 6 个 b |
分组:(多个字符)+限定符
- 多字符匹配
- 例 :(ab)+ 结果:ababab…
或运算符
OR Operator
实例 | 实例结果 |
---|---|
a (cat|dog) | 1. a cat 2. a dog |
字符类
语法 1:[字符范围]+
解释:由‘字符范围’内的字符组成的字符串
实例 | 实例结果 |
---|---|
[abc]+ | 由 a、b、c 组成的字符串 |
[a-z]+ | 由 a 至 z 组成的字符串 |
[a-zA-Z0-9] | 由英文字母和数字组成的字符串 |
语法 2:[^字符范围]+
解释:由除‘字符范围内’的字符组成的字符串 (包含换行符)
实例 | 实例结果 |
---|---|
[^0-9]+ | 由除数字外组成的字符串 |
元字符
元字符 | 解释 | 备注 |
---|---|---|
\d | 数字字符 | \d+ 等于 [0-9]+ |
\w | 单词字符(英文、数字及下划线) | |
\s | 空白符(包含 Tab 和换行符) | |
\D | 非数字字符 | |
\W | 非单词字符 | |
\S | 非空白字符 | |
. | 任意字符(不包含换行符) | |
^ | 匹配行首 | ^a 匹配行首的 a |
$ | 匹配行位 |
贪婪与懒惰匹配
前面提到的限定符 * + {}
在匹配字符串时,默认会匹配尽可能多的字符。
例如:<span><b>This is a example</b></span>
<.+>
会匹配全部,即贪婪匹配
<.+?>
会匹配 <span>
<b>
</b>
</span>
,即懒惰匹配
案例 1 - RGB
TEST STRING:
#00
#ffffff
#ffaaff
#00hh00
#aabbcc
#000000
#ffffffff
REGULAR EXPRESSION: #[a-fA-F0-9]{6}\b
- 最后在末尾加入
\b
来代表单词字符的边界
#ffffff
#ffaaff
#aabbcc
#000000
案例 2 - IPv4
TEST STRING:
123
255.255.255.0
192.168.0.1
0.0.0.0
256.1.1.1
This is a string.
123.123.0
REGULAR EXPRESSION: \d+\.\d+\.\d+\.\d+
255.255.255.0
192.168.0.1
0.0.0.0
256.1.1.1
- 256 超出范围
REGULAR EXPRESSION: \b((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)\b
255.255.255.0
192.168.0.1
0.0.0.0