【入门基础】正则表达式

转自:SecurityWeekly

0x01 正则表达式

简单的说,正则表达式(regular expression,简称regex)是一些用来匹配和处理文本的字符串。正则表达式和正则表达式语言已经出现很多年,用来完成各种复杂的文本处理工作,可以在几乎所有的程序设计语言里和几乎所有的计算机平台上使用。

0x02 基本元字符

元字符 说明
. 匹配任意单个字符
| 逻辑或操作符
[] 匹配字符集合中的一个字符
[^] 对字符集和求非
- 定义一个区间(如[A-Z])
\ 对下一个字符转义

0x03 数量元字符

元字符 说明
* 匹配前一个字符(子表达式)的零次或多次重复
*? *的懒惰型版本
+ 匹配前一个字符(子表达式)的一次或多次重复
+? +的懒惰型版本
? 匹配前一个字符(子表达式)的零次或一次重复
{n} 匹配前一个字符(子表达式)的n次重复
{m, n} 匹配前一个字符(子表达式)至少m次且至多n次重复
{n, } 匹配前一个字符(子表达式)n次或更多次重复
{n, }? {n, }的懒惰型版本

0x04 位置元字符

元字符 说明
^ 匹配字符串的开头
\A 匹配字符串的开头
$ 匹配字符串的结束
\Z 匹配字符串的结束
\< 匹配单词的开头
\> 匹配单词的结束
\b 匹配单词边界(开头和结尾)
\B \b的反义

0x05 特殊字符元字符

元字符 说明
[\b] 退格字符
\c 匹配一个控制字符
\d 匹配任意数字字符
\D \d的反义
\f 换页符
\n 换行符
\r 回车符
\s 匹配一个空白字符
\S \s的反义
\t 制表符(Tab字符)
\v 垂直制表符
\w 匹配任意字母数字字符或下划线字符
\W \w的反义
\x 匹配一个十六进制数字
\0 匹配一个八进制数字

0x06 回溯引用和前后查找

元字符 说明
() 定义一个子表达式
\1 匹配第1个子表达式;\2代表第2个子表达式,以此类推
?= 向前查找
?<= 向后查找
?! 负向前查找
?<! 负向后查找
?() 条件(if then)
?()| 条件(if then else)

0x07 大小写转换

元字符 说明
\E 结束\L或\U转换
\l 把下一个字符转换为小写
\L 把最后面的字符转换为小写,直到遇见\E为止
\u 把下一个字符转换为大写
\U 把最后面的字符转换为大写,直到遇见\E为止

0x08 匹配模式

元字符 说明
(?m ) 分行匹配模式

0x09 常用正则表达式

1、IP地址

(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))

2、URL地址

https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?

3、完整URL地址

https?://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?

4、电子邮件地址

(\w+\.)*\w+@(\w+\.)+[A-Za-z]+

5、HTML注释

<!-{2,}.*?-{2,}>

推荐阅读:

长文详解python正则表达式



猜你喜欢

转载自blog.csdn.net/xcnhykohj3ek/article/details/80575792