python使用正则表达式的search()函数实现指定位置搜索功能

yipeiwu_com7年前Python基础

前面学习过search()可以从任意一个文本里搜索匹配的字符串,也就是说可以从任何位置里搜索到匹配的字符串。但是现实世界很复杂多变的,比如限定你只能从第100个字符的位置开始匹配,100个字符之前的不要匹配,这样的需求怎么样实现呢?来看下面的例子,它就是指定位置开始搜索:

#python 3.6 
#蔡军生  
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
import re  
text = 'This is some text -- with punctuation.' 
pattern = re.compile(r'\b\w*is\w*\b') 
print('Text:', text) 
print() 
pos = 0 
while True: 
  match = pattern.search(text, pos) 
  if not match: 
    break 
  s = match.start() 
  e = match.end() 
  print(' {:>2d} : {:>2d} = "{}"'.format( 
    s, e - 1, text[s:e])) 
  # Move forward in text for the next search 
  pos = e 

结果输出如下:

Text: This is some text -- with punctuation.
  0 : 3 = "This"
  5 : 6 = "is"

在这个例子里,实现一个低效的iterall()函数相同的功能。

总结

以上所述是小编给大家介绍的python使用正则表达式的search()函数实现指定位置搜索功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!

相关文章

用Python进行基础的函数式编程的教程

许多函数式文章讲述的是组合,流水线和高阶函数这样的抽象函数式技术。本文不同,它展示了人们每天编写的命令式,非函数式代码示例,以及将这些示例转换为函数式风格。 文章的第一部分将一些短小的数...

利用Python+阿里云实现DDNS动态域名解析的方法

利用Python+阿里云实现DDNS动态域名解析的方法

引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS...

python2.7的编码问题与解决方法

前言 Python的编码问题基本是每个新手都会遇到的坎,但只要完全掌握了就跳过了这个坑,万变不离其中,下面给大家整理了在python2.7遇到的编码问题,下面来一起看看吧。 一、直接在p...

在Django的session中使用User对象的方法

在Django的session中使用User对象的方法

通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了。 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证。 当然了,Dja...

Python的Twisted框架上手前所必须了解的异步编程思想

Python的Twisted框架上手前所必须了解的异步编程思想

前言 最近有人在Twisted邮件列表中提出诸如"为任务紧急的人提供一份Twisted介绍"的需求。值得提前透露的是,这个系列并不会如他们所愿。尤其是介绍Twisted框架和基于Pyth...