正则表达式

正则表达式

  • 基本使用
import re
# 从第一个字符每个字符  开始就必须匹配
匹配结果对象 = re.match(正则,数据)

# 从头开始搜索 并且尝试匹配 
匹配结果对象  = re.search(正则,数据)

# 匹配所有符合条件的数据
匹配结果对象  = re.compile(正则).findall(数据)
  • 匹配单个字符
匹配单个字符的字符- 元字符

.        匹配一个任意字符<默认除\n  re.S 模式可以匹配\n >

[]      匹配[]中任意一个字符

[-]    匹配[]中范围内任意一个字符

[^]    禁止匹配[]中任意一个字符

\d \D 一个数字字符、非数字字符

\s \S  一个空白字符、非空白         \s= [\r\n\v\t\f ]

\w \W 一个单词字符<数字字母下划线>  py3re.U 匹配汉字;  re.A 不匹配汉字
  • 匹配数量
{m,n}    匹配大于等于m 次  小于等于 n次

+        至少 1*        至少 0 次 

?        1 次或者 0
  • 匹配位置
^    匹配开始位置

$   匹配结束位置

r"正则1|2|3|4...."  匹配|左右任意一个表达式
  • 分组
# 1 创建有名分组: r"(?P<分组名字>正则)"
# 2 分组引用  r"(?P<分组名字>正则) (?P=name)"

res = re.match(
    r"^(?P<area>\d{3,4})-(?P<no>\d{6,8}) (?P=area)-(?P=no)$",
    "020-98765432 020-98765432")
  • 非贪婪模式
# 1 在 Python 中正则默认是贪婪模式  尽可能多匹配
# 2 默认贪婪模式变为懒惰模式 可能少匹配 在量词后加?
# 3 贪婪和懒惰都是有前提的:  整体匹配结果满足

res = re.match(r"^(\d+)(\d+)$", "123456789")  #  12345678,9
res = re.match(r"^(\d+?)(\d+)$", "123456789")  # 1,23456789
res = re.match(r"^(\d+?)(\d{1})$", "123456789")  # '12345678', '9'
res = re.match(r"^(\d+)(\d{8})$", "123456789")  # '1', '23456789'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值