python re.match函数的使用

1 re.match 说明

re.match()  从开始位置开始往后查找,返回第一个符合规则的对象,如果开始位置不符合匹配队形则返回None

从源码里面看下match 里面的内容

里面有3个参数 pattern ,string ,flags 

pattern : 是匹配的规则内容

string : 要匹配的字符串

flag : 标志位(这个是可选的,可写,可不写),用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等

下面写一个demo

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # pattern 匹配的规则
re_content = re.match("Python", str_content)
print(re_content)

打印的结果如下

可以看到匹配的的下标是(0,6) 匹配的内容是Python

2 span 的使用

如果想获取匹配的下标,可以使用span ,

match span 的作用就是返回匹配到内容的下标

使用方式如下

import re  # 导入re 模块

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # pattern 匹配的规则
re_content = re.match("Python", str_content).span()
print(re_content)

打印结果如下

3 group 的使用

如果想获取匹配到结果的内容可以使用group ,注意使用group的时候就不要在使用span 了

import re  # 导入re 模块

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # pattern 匹配的规则
re_content = re.match("Python", str_content)
print(re_content.group())

打印结果如下

4 匹配不到内容的情况

如下面的返回结果为None

import re  # 导入re 模块

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # pattern 匹配的规则
re_content = re.match("python", str_content)
print(re_content)
# 或者

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # pattern 匹配的规则
re_content = re.match("is", str_content)
print(re_content)

5 使用group 注意点

注意当匹配不到内容的时候就使用group 或者span 的时候会报错,所以当使用group 的时候 先判断下是否匹配到内容然后在使用它

例如匹配不到内容的情况下使用group

import re  # 导入re 模块

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # patterPn 匹配的规则
re_content = re.match("python", str_content)
print(re_content.group())

这样会报错,报错内容如下

添加是否匹配判断

import re  # 导入re 模块

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # patterPn 匹配的规则
re_content = re.match("python", str_content)
if re_content:
    print(re_content.group())
else:
    print("没有匹配到内容")

打印结果如下

这样会走到else 里面就不会报错了

6 flag 的使用

写一个忽略大小写的情况

import re  # 导入re 模块

str_content = "Python is a good language"  # 要匹配的内容, 对应match 里面的string
str_pattern = "Python"  # patterPn 匹配的规则
re_content = re.match("python", str_content, re.I)
if re_content:
    print(re_content.group())
else:
    print("没有匹配到内容")

打印结果如下:

flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:

  1. re.I 忽略大小写
  2. re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
  3. re.M 多行模式
  4. re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
  5. re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
  6. re.X 为了增加可读性,忽略空格和 # 后面的注释

 

  • 32
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Python中的re.match函数是正则表达式模块(re模块)中的一个函数,用于从字符串的起始位置开始匹配一个正则表达式。如果匹配成功,返回一个匹配对象(Match object),否则返回None。 下面是一个示例代码,展示了re.match函数的用法: ``` import re s = "Long live the people's Republic of China" ret1 = re.match('Long', s) print(ret1) ret2 = re.match('the', s) print(ret2) ``` 在这个示例中,我们使用re.match函数对字符串s进行匹配。ret1匹配成功,因为字符串s的起始位置是'Long',与正则表达式'Long'匹配。所以ret1是一个匹配对象。而ret2匹配失败,因为字符串s的起始位置不是'the',与正则表达式'the'不匹配。所以ret2是None。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python提升篇(九)---正则表达式之re.match函数](https://blog.csdn.net/xyl666666/article/details/107308488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python中re.match()用法详解](https://blog.csdn.net/weixin_44799217/article/details/122074090)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值