正则表达式学习

file

限定符

? (问号)

file

代表?前边的字符需要出现0次或1次

* (星号)

file

表示*前边的字符可以出现0次或无数次

+ (加号)

file

匹配出现1次以上的字符

{} (花括号)

限定字符出现的次数 eg: ab{6}c ——->指中间b出现了6次 eg: ab{2,6} ——->指中间b出现的次数在2-6之间包括2和6 eg: ab{2,} ——->指中间b出现的次数在2之上包括2

限定多个字符同时出现

使用括号() 将多个字符包含起来 然后结合上边的限定符 file

或运算符

re:a (catdog) 匹配a cat或者a dog 正则中的空格和括号不能少

re:a catdog 匹配的是a cat或者dog

字符类

re: [abc]+ 匹配由abc组成的字符串

re:[a-zA-Z0-9] 匹配大小写字符和数字

re: [^0-9]+ 匹配除下0-9以外的字符

元字符

\b

表示字符的边界 re:\ba 匹配开头的a

re: a\b 匹配结尾的a

\d

代表数字字符 等同于0-9

\D

代表非数字字符

\w

代表单词字符 所有的英文字符 数字 下划线

\W (大写W)

代表非单词字符

\s

代表空白符 包含 Tab和换行符

\S (大写)

代表非空白字符

.

代表任意字符

^

匹配行首

re:^a 匹配开头的a

$

匹配行尾

re:a$ 匹配行尾的a

贪婪与懒惰匹配

re:<.+> 会匹配尽可能多的 file

加上? 将贪婪转为懒惰

re:<.+?> file

实例

匹配ip地址

re: \d+.+\d+.\d+.+d+

会匹配 数字 . 数字 . 数字 . 数字 .

改进匹配点中间的数字介于0-255 re: ((\b25[0-5]\b2[0-4]\d\b[01]?\d\d?).){3}(25[0-5]2[0-4]\d[01]?\d\d?) (但是会匹配0.0.0.0和00.00.00.00 000.000.000.000)

re: ctf{[a-zA-Z0-9-]*} 匹配以ctf{开头以}结尾的字符串 file


正则表达式学习
http://example.com/2021/04/14/OldBlog/正则表达式学习/
作者
Autumn
发布于
2021年4月14日
许可协议