正则表达式符号操作说明以及贪婪与非贪婪

re模块

  在Python中需要通过正则表达式对字符串进行匹配的时候,就需要用到re模块

re的使用:

 # 导入re模块
 import re

 # 使用match方法进行匹配操作
 result = re.match(正则表达式,要匹配的字符串)

 # 使用group方法来提取数据
 result.group()

re.match() 能够匹配出以xxx开头的字符串
re.search() 函数会在字符串内查找匹配的字符,只要找到第一个匹配,然后会返回
  


匹配字符

(一) 匹配单个字符

.		匹配任意1个字符(除了\n)
[]		匹配[ ]中列举的字符
\d		匹配数字,即0-9
\D		匹配非数字,即不是数字
\s		匹配空白,即 空格,tab键
\S		匹配非空白
\w		匹配单词字符,即a-z、A-Z、0-9、_
\W		匹配非单词字符

(二) 匹配多个字符

*		匹配前一个字符出现0次或者无限次,即可有可无
+		匹配前一个字符出现1次或者无限次,即至少有1次
?		匹配前一个字符出现1次或者0次,即要么有1次,要么没有
{m}		匹配前一个字符出现m次
{m,n}	匹配前一个字符出现从m到n次

(三) 匹配开头结尾

^	匹配字符串开头
$	匹配字符串结尾

(四) 匹配分组

|	 	匹配左右任意一个表达式
(ab)	将括号中字符作为一个分组
\num	引用分组num匹配到的字符串
(?P<name>)	  分组起别名
(?P=name)  	  引用别名为name分组匹配到的字符串

(五) 正则re模块的高级用法

  • findall

    # 返回string中所有与pattern相匹配的全部字串,返回形式为列表组。
    re.findall(pattern, string[, flags])  
    
  • sub 将匹配到的数据进行替换

    import re
    
    ret = re.sub(r"\d+", "666", "python = "857")
    print(ret)
    
    # 运行结果:
    python = 666
    
  • split 根据匹配进行切割字符串,并返回一个列表

    import re
    
    # 用:或者空格来切割
    ret = re.split(r":| ","info:xiaoZhang 18 guangdong")
    print(ret)
    
    
    运行结果:
    ['info', 'xiaoZhang', '18', 'guangdong']
    

  


贪婪与非贪婪

+默认是贪婪的 只需要在右侧加上一个?就变成了非贪婪

贪婪是指尽可能的匹配字符
非贪婪是指尽可能的匹配字符

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值