正则表达式

定义

正则表达式是一个特殊的字符序列,能帮助你方便地检查一个字符串是否与某种模式匹配

使用正则表达式的原因

典型的搜索和替换操作要求提供与预期的搜索结果匹配的确切文本。虽然这种技术对于对静态文本执行简单搜索和替换任务可能已经足够了,但它缺乏灵活性,若采用这种方法搜索动态文本,即使不是不可能,但会变得很困难。
通过使用正则表达式,可以:
(1)测试字符串内的模式。
例,可以测试输入字符串,以查看字符串内是否出现电话号码模式或信用卡号码模式。这称为数据验证。
(2)替换文本。
可以使用正则表达式来识别文档中的特定文本,完全
删除该文本或者用其他文本替换它。
(3)基于模式匹配从字符串中提取子字符串。
可以查找文档内或输入域内特定的文本。

Python支持的正则表达式元字符和语法

在这里插入图片描述

re.match方法

尝试从字符串的起始位置匹配一个模式,匹配成功re.match方法返回一个匹配的对象,否则返回None。

re.match(pattern, string, flags=0)

其中,
pattern:匹配的正则表达式
string:要匹配的字符串
flags:标志位,用于控制正则表达式的匹配方式。多个标志可以通过按位 OR(|) 来指定,如 re.I | re.M 被设置成 I 和 M 标志。具体如下:
①re.I:使匹配对大小写不敏感
② re.L:做本地化识别匹配
③re.M:多行匹配,影响 ^ 和 $
④re.S:使 . 匹配包括换行在内的所有字符
⑤re.U:根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
⑥re.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解

import re
print(re.match('www', 'www.runoob.com')) 
print(re.match('com', 'www.runoob.com'))
#答案:<re.Match object; span=(0, 3), match='www'>
       None
import re
middle = re.match('www', 'www.runoob.com'))
print(middle.span())  #答案:(0, 3) tuple形式返回范围
print(middle.group()) #答案:www  以str形式返回对象中match的元素
print(middle.start()) #答案:0     返回开始位置
print(middle.end())   #答案:3     返回结束位置

re.search方法

扫描整个字符串并返回第一个成功的匹配

re.search(pattern, string, flags=0)
import re
print(re.search('www', 'www.runoob.com'))
#答案:<re.Match object; span=(0, 3), match='www'>
print(re.search('www', 'www.runoob.com').span()) 
#答案:(0, 3)
print(re.search('com', 'www.runoob.com').span()) 
#答案:(11, 14)

re.match与re.search的区别

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值