python字符串匹配match()

re 模块使 Python 语言拥有全部的正则表达式功能。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

本章节主要介绍Python中常用的正则表达式处理函数。

re.match()

尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

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

参数描述
pattern :匹配的正则表达式
string :要匹配的字符串。
flags :标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

flags详情:
re.I:使匹配对大小写不敏感
re.L:做本地化识别(locale-aware)匹配
re.M:多行匹配,影响 ^ 和 $
re.S:使 . 匹配包括换行在内的所有字符
re.U:根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.
re.X:该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

匹配成功re.match方法返回一个匹配的对象,否则返回None。

注意:match()从字符串的第一个字符开始匹配,当第一个字符不符合时,不在进行匹配
示例代码如下:

import re
p1 = r'CS_\w+'
p2 = 'CS_123  cs_111'
p3 = '测试CS_123  cs_111'
match = re.match(p1,p2,re.I)
match1 = re.match(p1,p3,re.I)
print(match)
print(match1)

结果为:

"D:\Program Files\Python39\python.exe" F:/python/Excel_CF/main.py
<re.Match object; span=(0, 6), match='CS_123'>
None

进程已结束,退出代码为 0

基于match()判别其开始位置、结束位置等

import re
p1 = r'CS_\w+'
p2 = 'CS_123  cs_111'
p3 = 'ACS_测试CS_sss'
match = re.match(p1,p2,re.I)
match1 = re.match(p1,p3,re.I)
print(match)
print(match1)
print("**************************************************")
print('匹配的起始位置为:',match.start())
print('匹配的结束位置为:',match.end())
print('匹配位置的元组为:',match.span())
print('匹配的字符串:',match.string)
print('匹配数据:',match.group())
print("**************************************************")
print('匹配的起始位置为:',match1.start())
print('匹配的结束位置为:',match1.end())
print('匹配位置的元组为:',match1.span())
print('匹配的字符串:',match1.string)
print('匹配数据:',match1.group())

结果为

"D:\Program Files\Python39\python.exe" F:/python/Excel_CF/main.py
<re.Match object; span=(0, 6), match='CS_123'>
None
**************************************************
匹配的起始位置为: 0
匹配的结束位置为: 6
匹配位置的元组为: (0, 6)
匹配的字符串: CS_123  cs_111
匹配数据: CS_123
**************************************************
Traceback (most recent call last):
  File "F:\python\Excel_CF\main.py", line 16, in <module>
    print('匹配的起始位置为:',match1.start())
AttributeError: 'NoneType' object has no attribute 'start'

进程已结束,退出代码为 1

由此可以看出,当match从第一个字母匹配失败时,match所调用的相关函数都无法使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值