正则表达式中re.match、re.search、re.findall的用法和区别

正则表达式中re.match、re.search、re.findall的用法和区别

re.match 用法

re.match语法:re.match(pattern,string,flags=0)
pattern:表示正则表达式
string:要匹配的字符
flags:控制匹配的方式
**re.match匹配方式:**从字符起始位置匹配,若起始位置匹配不成功返回none。即只匹配起始位置

import re 
string='www.baidu.com'
pattern1='www'
pattern2='com'
m_match1=re.match(pattern1,string)
m_match2=re.match(pattern2,string)
print(m_match1)
print(m_match2)
#结果
<re.Match object; span=(0, 3), match='www'>
None

re.search用法

re.match 只能在起始位置匹配,而re.search可以扫描整个字符串并返回第一个成功的匹配

import re 
string='www.baidu.com'
pattern='com'
m_match1=re.match(pattern,string)
m_match2=re.search(pattern,string)
print(m_match1)
print(m_match2)
#结果
None
<re.Match object; span=(10, 13), match='com'>

re.findall 方法

上述两个都只能找到一个匹配结果,而findall可以找到所有满足匹配条件的结果,并以列表的形式返回

import re 
string='www.baidu.com,www.runoob.com,www.163.com'
pattern='www'
m_match1=re.match(pattern,string)
m_match2=re.search(pattern,string)
m_match3=re.findall(pattern,string)
print(m_match1)
print(m_match2)
print(m_match3)
#结果
<re.Match object; span=(0, 3), match='www'>
<re.Match object; span=(0, 3), match='www'>
['www', 'www', 'www']

三者的区别

在这里插入图片描述
#有错多多指教

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
正则表达式是一种用于匹配字符串的强大工具,其功能在Python通过re模块实现。在Python,re模块提供了三种主要的正则表达式方法:searchmatchfindall。 1. search方法:在给定字符串搜索正则表达式的第一个匹配项。如果找到匹配项,则返回一个MatchObject对象,否则返回None。语法为:re.search(pattern, string, flags=0) 2. match方法:从给定字符串的开头开始搜索正则表达式的第一个匹配项。如果找到,则返回一个MatchObject对象,否则返回None。语法为:re.match(pattern, string, flags=0) 3. findall方法:在给定字符串查找正则表达式的所有匹配项,并返回一个匹配项的列表。语法为:re.findall(pattern, string, flags=0) 这三种方法的使用方法基本相同,只需在调用时传递不同的参数即可。其pattern是正则表达式模式,string是要匹配的字符串,flags是可选参数,用于指定匹配方式。 例如,如果要在字符串查找所有数字,可以使用以下代码: ``` import re string = "I have 3 apples and 2 oranges" pattern = r'\d+' result = re.findall(pattern, string) print(result) ``` 输出为:['3', '2'] 其,r'\d+'是一个正则表达式,表示匹配一个或多个数字。调用re.findall方法,会返回所有匹配项的列表。 需要注意的是,如果想要使用正则表达式的各种特殊字符,需要在前面加上反斜杠\,或者使用原始字符串(在字符串前加上r),以避免转义字符的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值