Python正则表达式_常用匹配方法search

正则匹配方法之search

一、pattern.search()方法
语法: search(string=None, pos=0, endpos=9223372036854775807, *, pattern=None)
函数作用: 在string[pos,endpos]区间从pos处开始匹配pattern,如果匹配成功,返回匹配成功的Match对象;如果未成功,将pos加1后重新尝试匹配,直到pos=endpos时仍无法匹配则返回None。
参数说明:
**string:**被匹配的字符串
pos: 匹配的起始位置,可选,默认为0
endpos: 匹配的结束位置,可选,默认为len(string)
也就是说如果不指定pos和endpos的话,该方法会扫描整个字符串匹配到的Match对象,使用其group()方法取出匹配结果
与pattern.match()的区别:
match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败返回None;而search搜索整个字符串,直到知道的一个匹配。

# 1、不指定区间匹配
import re 
#匹配多个数字,最多一个空格,0个或多个单词字符(字母和数字)
# *是贪婪匹配(多个),?是抑制贪婪(0或1个)
p=re.compile(r'\d+\s?\w*')
#不指定匹配区间
aa = p.search('1eebr13Abc13')
if aa:
      print ('匹配的内容是:', aa.group())
else:
      print ("正则表达式没有匹配到内容")

# 返回结果: 匹配的内容是: 1eebr13Abc13

# 2、指定区间匹配
#指定匹配区间,在第1个到第10个字符之间匹配
bb = p.search('353 sgsdg46fhsfwe55d',1,10)
if bb:
      print ('匹配的内容是:', bb.group())
else:
      print ("正则表达式没有匹配到内容")

# 返回结果:匹配的内容是: 53 sgsdg4

小结论: 指定区间时,区间是前闭后开,即含前不含后。

二、re.search()方法
语法: search(pattern, string, flags=0)
函数作用: 扫描整个字符串并返回第一次成功的匹配对象,如果匹配失败返回None
参数说明:
pattern: 匹配的正则表达式
string: 被匹配的字符串
flags: 标志位,用于控制正则表达式的匹配方式,如是否区分大小写,是否匹配多行等
与pattern.search的区别:
不能指定匹配的区间pos和endpos

# 例子:匹配样式为“abc中任一字母+一个星号(*)+两个数字”的字符
#encoding=utf-8
import re
m = re.search(r'[abc]\*\d{2}','a*2345')
m.group()  # 返回'a*23'
mm = re.search(r'[abc]\*\d{2}','ac*2345')
mm.group()  # 返回 'c*23'
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 爬虫中,正则表达式是非常常用的技术,可以帮助我们从网页中提取出需要的信息。下面是一些常用正则表达式符号和方法: 1. ".":匹配任意单个字符,除了换行符。 2. "^":匹配字符串的开始位置。 3. "$":匹配字符串的结束位置。 4. "*":匹配前一个字符出现 0 次或多次。 5. "+":匹配前一个字符出现 1 次或多次。 6. "?":匹配前一个字符出现 0 次或 1 次。 7. "{m}":匹配前一个字符出现 m 次。 8. "{m,n}":匹配前一个字符出现 m 到 n 次。 9. "(...)":分组匹配匹配括号内的表达式。 10. "[...]":匹配括号内的任意一个字符。 11. "[^...]":匹配不在括号内的任意一个字符。 12. "\d":匹配数字,等同于 [0-9]。 13. "\D":匹配非数字,等同于 [^0-9]。 14. "\s":匹配空白字符,包括空格、制表符、换行符等。 15. "\S":匹配非空白字符。 16. "\w":匹配单词字符,包括字母、数字、下划线。 17. "\W":匹配非单词字符。 在 Python 中,使用 re 模块进行正则表达式匹配常用方法包括: 1. re.compile(pattern):将正则表达式编译成一个对象,提高匹配效率。 2. re.search(pattern, string):在字符串中搜索匹配正则表达式的第一个位置。 3. re.findall(pattern, string):在字符串中搜索匹配正则表达式的所有位置,并返回一个列表。 4. re.sub(pattern, repl, string):将字符串中所有匹配正则表达式的字符替换为指定的字符串。 以上是一些常用正则表达式符号和方法,希望能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值