1.re.search函数

re.search 扫描整个字符串并返回第一个成功的匹配,如果匹配失败search()就返回None。

(1)函数语法

  re.search(pattern, string, flags=0)

  函数参数说明:

    pattern   匹配的正则表达式

    string      要匹配的字符串

    flgs         标志位,用于控制正则表达式的匹配方式

  我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

  group(num=0)   获取匹配结果的各个分组的字符串,group() 可以一次输入多个组号,此时返回一个包含那些组所对应值的元组。

  groups()            返回一个包含所有分组字符串的元组。

  注意:如果未匹配成功,search()返回值为None,此时再使用group()、groups()  方法会报错。

         应该先获取匹配对象,然后判断匹配对象是否非空,当非空时在使用group()、groups()  方法获取匹配结果。见实例2

(2)实例

例1

    import re
    print(re.search(r'How', 'How are you').span())              # 在起始位置匹配
    print(re.search(r'are', 'How are you').span())                # 不在起始位置匹配

以上输出结果为:

  (0, 3)
(4, 7)

例2

 

 import re
 content = 'Hi zeke,how old are you'  result = re.search(r'\d+' , content)
 if result:
   print result.group()
 else:
   print 'No match!'  rs = re.search(r'\w{4}' , content)
 if rs:
   print rs.group()
 else:
   print 'No match!'

 以上执行结果如下:

 No match!

 zeke

2.pattern.search方法

(1) 函数语法

  pattern.search( string, pos=0, endpos=len(string))

  函数作用:

    这个方法将在字符串string的pos位置开始 尝试匹配pattern(pattern就是通过 re.compile()方法编译后返回的对象),如 果pattern匹配成功,无论是否达到结束位 置endpos,都会返回一个匹配成功后的Match对象;

    如果匹配不成功,或者 pattern未匹配结束就达到endpos,则返回 None。

  函数参数说明:

    string:被匹配的字符串

    pos:匹配的起始位置,可选,默认为0

    endpos:匹配的结束位置,可选,默认为 len(string)

3. re.search和pattern.search区别

  re.search方法与pattern.search()方法 区别在于,它不能指定匹配的区 间pos和endpos两个参数

4. re.match方法与re.search方法的区别

  re.match只匹配字符串的开始,如果字符串开始不符合正则表达式, 则匹配失败,并返货None;

  re.search匹配整个字符串, 直到找到一个匹配,如果整个字符串都没匹配到,则返回None。

												

python正则表达式(4)--search方法的更多相关文章

  1. python正则表达式--match search方法

    1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern, st ...

  2. Learning Python 008 正则表达式-003 search()方法

    Python 正则表达式 - search()方法 findall()方法在找到第一个匹配之后,还会继续找下去,findall吗,就是找到所有的匹配的意思.如果你只是想找到第一个匹配的信息后,就不在继 ...

  3. python 正则表达式 re.search

    #coding:utf-8 import re #将正则表达式编译为pattern对象 #compile(pattern, flags=0) #Compile a regular expression ...

  4. Python正则表达式re.search(r'\*{3,8}','*****')和re.search('\*{3,8}','*****')的匹配结果为什么相同?

    老猿做过如下测试: >>> re.search(r'\*{3,100}','*****') <re.Match object; span=(0, 5), match='**** ...

  5. python正则表达式(3)--match方法

    1.re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None. (1)函数语法: re.match(pattern, st ...

  6. Python正则表达式(总)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6445044.html 本文出自:[Edwin博客园] Python正则表达式(总) search(patte ...

  7. Python正则表达式re模块学习遇到的问题

    Python正则表达式处理的组是什么? Python正则表达式处理中的匹配对象是什么? Python匹配对象的groups.groupdict和group之间的关系 Python正则表达式re.mat ...

  8. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

  9. Python正则表达式一: 基本使用方法

    学习python的正则表达式,主要有两个方面学习: 第一,学习如何写正则表达式,主要是掌握其语法规范.正则表达式的语法规范是通用的,对各种开发语言都是一致的. 第二,学习如何使用正则表达式,也就是掌握 ...

随机推荐

  1. Redis哨兵、复制、集群的设计原理与区别

    一 前言 谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转 ...

  2. 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...

  3. c# 3d图像显示

    1.应用directx图形库进行开发: 2.代码: public class TClass : System.Windows.Forms.Form { /// <summary> /// ...

  4. ASP.Net Core使用分布式缓存Redis从入门到实战演练

    一.课程介绍 人生苦短,我用.NET Core!缓存在很多情况下需要用到,合理利用缓存可以一方面可以提高程序的响应速度,同时可以减少对特定资源访问的压力.  所以经常要用到且不会频繁改变且被用户共享的 ...

  5. 【Python开发】Pycharm下的Anaconda配置

    我的系统是Win 64位的,用的Python 3.5.1 ,最近在学机器学习,用到了Numpy这个科学计算库,网上查了之后,看到很多装Numpy出问题的情况,所以决定装Anaconda,简单一些,并且 ...

  6. 《Linux就该这么学》培训笔记_ch09_使用ssh服务管理远程主机

    <Linux就该这么学>培训笔记_ch09_使用ssh服务管理远程主机 文章最后会post上书本的笔记照片. 文章主要内容: 配置网络服务 远程控制服务 不间断会话服务 书本笔记 配置网络 ...

  7. aspxgridview 实现单选

    <dxwgv:ASPxGridView ID="ASPxGridView1" runat="server"             AutoGenerat ...

  8. TopCoder入门

    TopCoder入门 http://acmicpc.info/archives/164?tdsourcetag=s_pctim_aiomsg 本文根据经典的TC教程完善和改编.TopCoder:htt ...

  9. this与bind(this) (es5新增)

    this与bind(this) this this指向的是当前函数的作用域(对象实例),有如下的例子 const app = { name: 'xiaoming', log() { console.l ...

  10. reactiveX沉思(草稿)

    一.第一性原理 将异步的io.事件解释为observable.并借用observer的一些类概念进行处理. ReactiveX is a library for composing asynchron ...