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

原创 2017年10月17日 17:22:53
前面学习过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()函数相同的功能。

深入浅出Numpy
http://edu.csdn.net/course/detail/6149 

Python游戏开发入门

你也能动手修改C编译器

纸牌游戏开发

http://edu.csdn.net/course/detail/5538 

五子棋游戏开发

http://edu.csdn.net/course/detail/5487
RPG游戏从入门到精通
http://edu.csdn.net/course/detail/5246
WiX安装工具的使用
http://edu.csdn.net/course/detail/5207
俄罗斯方块游戏开发
http://edu.csdn.net/course/detail/5110
boost库入门基础
http://edu.csdn.net/course/detail/5029
Arduino入门基础
http://edu.csdn.net/course/detail/4931
Unity5.x游戏基础入门
http://edu.csdn.net/course/detail/4810
TensorFlow API攻略
http://edu.csdn.net/course/detail/4495
TensorFlow入门基本教程
http://edu.csdn.net/course/detail/4369
C++标准模板库从入门到精通 
http://edu.csdn.net/course/detail/3324
跟老菜鸟学C++
http://edu.csdn.net/course/detail/2901
跟老菜鸟学python
http://edu.csdn.net/course/detail/2592
在VC2015里学会使用tinyxml库
http://edu.csdn.net/course/detail/2590
在Windows下SVN的版本管理与实战 
http://edu.csdn.net/course/detail/2579
Visual Studio 2015开发C++程序的基本使用 
http://edu.csdn.net/course/detail/2570
在VC2015里使用protobuf协议
http://edu.csdn.net/course/detail/2582
在VC2015里学会使用MySQL数据库
http://edu.csdn.net/course/detail/2672


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/caimouse/article/details/78262846

python正则表达式search方法

python正则表达式模块re中的search方法应用(python2.x) 函数:re.search(pattern,string,flags=0)          flags标识位 0x00: ...
  • hard_lushunming
  • hard_lushunming
  • 2017-03-26 22:12:20
  • 4291

Python中re的match、search、findall、finditer区别

1、match re.match(pattern, string[, flags])从首字母开始开始匹配,string如果包含pattern子串,则匹配成功,返回Match对象,失败则返回None,若...
  • djskl
  • djskl
  • 2015-03-17 22:57:03
  • 55097

Python里面search()和match()的区别?

match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话...
  • u011860731
  • u011860731
  • 2015-07-19 18:51:19
  • 2400

Python3的re.match()、re.search()和re.findall()

最近刚学习了Python3 的re模块,对正则表达式有了初步的了解,试着写了个代码发现正则表达式怎么一直不起作用。 结果发现是自己没搞清楚re.match()、re.search()和re.finda...
  • szlcw1
  • szlcw1
  • 2015-11-01 15:05:03
  • 32607

Python机器学习包的sklearn中的Gridsearch简单使用

cross-validation(交叉验证) A solution to this problem is a procedure called cross-validation (CV for s...
  • selous
  • selous
  • 2017-04-18 15:48:48
  • 5550

Python RE模块中search()和match()的区别

match()函数只检测RE是不是在string的开始位置匹配,  search()会扫描整个string查找匹配; 也就是说match()只有在0位置匹配成功的话才有返回, 如果不是开始位置匹...
  • cnmilan
  • cnmilan
  • 2013-06-10 17:29:21
  • 22902

python正则表达式 re (二)match与search

re正则表达式模块还包括一些有用的操作正则表达式的函数。下面主要介绍match函数以及search函数。 定义: re.match 尝试从字符串的开始匹配一个模式。函数的返回值为真或者假。 例如...
  • Winterto1990
  • Winterto1990
  • 2015-08-08 20:50:31
  • 7068

Python正则表达式:match(),search(),findall()与finditer()的用法

一、模式串匹配前几天了解到正则语法和有穷自动机的等价性,因此特意来复习一下RE的基本用法(太久没用了,手生)。日常来说,正则表达式的主要方法是re.method()这样的模式串匹配,一共有四种常用方法...
  • qq_39521554
  • qq_39521554
  • 2018-03-06 19:13:01
  • 38

Python----使用正则re查找文本中特定中文字符串

Python----使用正则re查找文本中特定中文字符串 例子1:脚本文件 root@kali:~/python/dinpay# cat t.py #coding:utf-8 impor...
  • xwbk12
  • xwbk12
  • 2018-01-10 16:58:48
  • 437

正则表达式中的search、findall、finditer 区别

方法/属性 作用 match() 决定 RE 是否在字符串刚开始的位置匹配 search() 扫描字符串,找到这个 RE 匹配的位置 findall() 找到 RE 匹配的所有子串,并把它...
  • u010951938
  • u010951938
  • 2015-01-27 17:08:11
  • 2936
收藏助手
不良信息举报
您举报文章:python里使用正则表达式的search()函数实现指定位置搜索
举报原因:
原因补充:

(最多只允许输入30个字)