正则表达式基础语法
正则表达式-字符类
c
[abc]:代表a或者b,或者c字符中的一个。
[^abc]:代表除a,b,c以外的任何字符。
[a-z]:代表a-z的所有小写字符中的一个。
[A-Z]:代表A-Z的所有大写字符中的一个。
[0-9]:代表0-9之间的某一个数字字符。
[a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。
[a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。
逻辑运算符
c
&&:并且
| :或者(可以省略)
预定义字符
c
"." : 匹配任何字符。
"\d":任何数字[0-9]的简写;
"\D":任何非数字[^0-9]的简写;
"\s": 空白字符:[ \t\n\x0B\f\r] 的简写
"\S": 非空白字符:[^\s] 的简写
"\w":单词字符:[a-zA-Z_0-9]的简写
"\W":非单词字符:[^\w]
数量词
c
x? : 0次或1次
x* : 0次到多次
x+ : 1次或多次
X{n} : 恰好n次
X{n,} : 至少n次
X{n,m}: n到m次(n和m都是包含的,最少n次,最多m次。
ip地址匹配
error1
c
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
等同于(\d{1,3}\.){3}\d{1,3}
匹配范围:0-999.0-999.0-999.0-999
error2
c
((1\d{2}.)|(2[0-5]{2}.)|(\d{1,2}.)){3}((\d{1,2})|(1\d{2})|(2[0-5]{2})))
239这类的匹配不了
正确匹配
cpp
(^((2[0-4]\d.)|(25[0-5].)|(1\d{2}.)|(\d{1,2}.))((2[0-5]{2}.)|(1\d{2}.)|(\d{1,2}.){2})((1\d{2})|(2[0-5]{2})|(\d{1,2})))