python正则表达式(二)

二、re特殊字符

符号 描述
. 匹配任何字符换行符除外
^ 匹配字符串的开始
$ 匹配字符串末尾或字符串末尾换行符之前
* 匹配前面RE的0个或更多(贪婪)重复。贪婪意味着它将匹配尽可能多的重复
+ 匹配前面RE的1次或多次(贪婪)重复
匹配前面RE0或1(贪婪)次
*?, +?, ?? *,+,? 三个特殊字符的非贪婪版本
{m,n} 匹配前面RE的m到n次重复(贪婪)
{m,n}? 匹配前面RE的m到n次重复(非贪婪)
\\ 转义特殊字符或向特殊序列发送信号
[]

表示一组字符。第一个字符为“^”表示互补集

| A|B, 创建匹配A或B的RE
(...) 匹配括号内的RE
(?aiLmsux) 为RE设置A、I、L、M、S、U或X标志
(?:...) 括号的非分组版本
(?P...) 可以通过名称访问组匹配的子字符串
(?P=name) 匹配之前由组名称匹配的文本
(?#...) 注释信息,里面的内容会被忽略
(?=...) 匹配如果后面存在某某文本,但是不消费字符串
(?!...) 匹配如果后面不存在某某文本
(?<=...) 匹配当前位置之前是某某文本
(? 匹配当前位置之前不是某某文本
(?(id/name)yes|no) 如果给定的id/name存在,则匹配yes模式,否则匹配no模式,no模式可以忽略
\number 匹配分组的内容,每个括号是一个分组,从1开始编号,\1表示匹配第一个分组
\A 匹配字符串的开始
\Z 匹配字符串的结尾
\b 匹配空字符串,但仅在单词的开头或结尾
\B 匹配空字符串,但不在单词的开头或结尾
\d

匹配任何十进制数字

\D 匹配任何非数字字符
\s 匹配空白字符
\S 匹配非空白字符
\w 匹配数字字母下划线
\W 匹配非数字字母下划线

1、. 

用途: 匹配任何字符除了换行符

示例:

python正则表达式(二)_第1张图片

2、^ 

用途: 匹配字符串的开始位置

示例:

python正则表达式(二)_第2张图片

3、$ 

用途: 匹配字符串的结束位置

示例:

python正则表达式(二)_第3张图片

4、* 

用途: 匹配前面的表达式0次或多次(贪婪)

示例:

python正则表达式(二)_第4张图片

5、+ 

用途: 匹配前面的表达式1次或多次(贪婪)

示例:

python正则表达式(二)_第5张图片

6、? 

用途: 匹配前面的表达式0次或1次(贪婪)

示例:

python正则表达式(二)_第6张图片

7、*? 

用途: 匹配前面的表达式0次或1次(非贪婪)

示例:

python正则表达式(二)_第7张图片

8、+? 

用途: 匹配前面的表达式1次或多次(非贪婪)

示例:

python正则表达式(二)_第8张图片

9、?? 

用途: 匹配前面的表达式0次或1次(贪婪)

示例:

python正则表达式(二)_第9张图片

10、{m,n}

用途: m和n均为非负整数,其中 m<=n。最少匹配m次且最多匹配n次(贪婪)

示例:

python正则表达式(二)_第10张图片

11、{m,n}?

用途: m和n均为非负整数,其中 m<=n。最少匹配m次且最多匹配n次(非贪婪)

示例:

python正则表达式(二)_第11张图片

12、\\

用途: m和n均为非负整数,其中 m<=n。最少匹配m次且最多匹配n次(非贪婪)

示例:

python正则表达式(二)_第12张图片

13、[]

用途: 表示一组字符集合,匹配所包含的任意一个字符。第一个字符为“^”表示互补集

示例:

python正则表达式(二)_第13张图片

14、|

用途: A|B, 创建匹配A或B的RE

示例:

python正则表达式(二)_第14张图片

15、(...)

用途: 匹配括号内的RE

示例:

python正则表达式(二)_第15张图片

16、(?aiLmsux)

用途: 为RE设置A、I、L、M、S、U或X标志,等价于re.I  re.A 等

示例:

python正则表达式(二)_第16张图片

17、(?:...)

用途: 括号的非分组版本,该分组所匹配的子字符串 不能 在执行匹配后被获取或是在之后的模式中被引用

示例:

python正则表达式(二)_第17张图片

18、(?P...)

用途: 可以通过名称访问组匹配的子字符串, 指定名称后数据索引依然有效

示例:

python正则表达式(二)_第18张图片

19、(?P=name)

用途: 匹配之前由组名称匹配的文本

示例:

python正则表达式(二)_第19张图片

20、(?#...)

用途: 注释信息,里面的内容会被忽略

示例:

python正则表达式(二)_第20张图片

21、(?=...)

用途: 匹配如果后面存在某某文本,但是不消费字符串

示例:

python正则表达式(二)_第21张图片

22、(?!...)

用途: 匹配如果后面不存在某某文本

示例:

 python正则表达式(二)_第22张图片

23、(?<=...)

用途: 匹配当前位置之前是某某文本

示例:

 python正则表达式(二)_第23张图片

24、(?

用途: 匹配当前位置之前不存在某某文本

示例:

python正则表达式(二)_第24张图片

25、(?(id/name)yes|no)

用途:如果给定的id/name存在,则匹配yes模式,否则匹配no模式,no模式可以忽略, 其中id和name是分组id和指定的分组名name

示例:

python正则表达式(二)_第25张图片

 PS:这个比较难理解, 希望大家仔细思考一下。

26、\number

用途:匹配分组的内容,每个括号是一个分组,从1开始编号,\1表示匹配第一个分组

示例:

python正则表达式(二)_第26张图片

 剩下的比较简单,此处略过,感兴趣的同学可以自己去试试。

你可能感兴趣的:(python,正则表达式,python)