python正则表达式-正则方法

本文介绍了Python的re模块,讲解了search、match、findall等函数的用法,以及如何进行大小写不敏感、多行匹配和全字符匹配。示例展示了在HTML字符串中提取链接,以及使用编译提高效率的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、re模块中常用函数

二、search(pattern,string) 

三、match(pattern,string) 

四、findall(pattern,string,flags) 

五、compile 编译


一、re模块中常用函数

   1、re.I 匹配大小写不敏感;
   2、re.M 多行匹配,影响到^和$;
   3、re.S 使. 匹配包括换行符在内的所有字符
import re
myStr='''<a href="http://www.baidu.com">百度</a>
         <a href="http://www.google.com">谷歌</a>
         <A href="http://www.baidu.com">百度</A>
         <a href='http://www.tengxun.com'>腾
         讯</a>
      '''
print('输出:',re.findall('<a href=[\'"](.*?)[\'"]>(.*?)</a>',myStr))
print('re.I 输出:',re.findall('<a href=[\'"](.*?)[\'"]>(.*?)</a>',myStr,re.I))
print('re输出:',re.findall('<a href=[\'"](.*?)[\'"]>(.*?)</a>', myStr, re.I|re.M|re.S))

输出: [('http://www.baidu.com', '百度'), ('http://www.google.com', '谷歌')]
re.I 输出: [('http://www.baidu.com', '百度'), ('http://www.google.com', '谷歌'), ('http://www.baidu.com', '百度')]
re输出: [('http://www.baidu.com', '百度'), ('http://www.google.com', '谷歌'), ('http://www.baidu.com', '百度'), ('http://www.tengxun.com', '腾\n         讯')]

二、search(pattern,string) 

     只匹配一次

import re
print(re.search('[a-z][a-z]','12343ts54to').group())
print(re.search('1[3-9][0-9]{9}','13345678910a').group())   #包含关系
print(re.search('^1[3-9][0-9]{9}$','x13345678910'))  #需要完全符合

ts
13345678910
None

三、match(pattern,string) 

      只匹配一次,必须从第一位开始 类似于search('^ ')

print(re.match('1[3-9][0-9]{9}','x14334555698'))
print(re.match('1[3-9][0-9]{9}','14334555698x').group())

None
14334555698

四、findall(pattern,string,flags) 

     匹配全部符合条件的字符,最为常用

myStr='abcd\nabcdu1234\nAjayush\niusdjs'
print(re.findall('^a\w+',myStr,re.I))
print(re.findall('^a\w+',myStr,re.I|re.M))

['abcd']
['abcd', 'abcdu1234', 'Ajayush']

五、compile 编译

import re
myStr='abcd\nabcdu1234\nAjayush\niusdjs'
pattern=re.compile('^a\w+',re.M)
print(pattern.findall(myStr))

['abcd', 'abcdu1234']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值