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<name>...)可以通过名称访问组匹配的子字符串
(?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、. 

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

示例:

2、^ 

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

示例:

3、$ 

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

示例:

4、* 

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

示例:

5、+ 

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

示例:

6、? 

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

示例:

7、*? 

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

示例:

8、+? 

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

示例:

9、?? 

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

示例:

10、{m,n}

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

示例:

11、{m,n}?

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

示例:

12、\\

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

示例:

13、[]

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

示例:

14、|

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

示例:

15、(...)

用途: 匹配括号内的RE

示例:

16、(?aiLmsux)

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

示例:

17、(?:...)

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

示例:

18、(?P<name>...)

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

示例:

19、(?P=name)

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

示例:

20、(?#...)

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

示例:

21、(?=...)

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

示例:

22、(?!...)

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

示例:

 

23、(?<=...)

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

示例:

 

24、(?<!...)

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

示例:

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

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

示例:

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

26、\number

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

示例:

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

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yongche_shi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值