1.re.match函数

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回None。

(1)函数语法

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

  函数参数说明:

    pattern   匹配的正则表达式

    string      要匹配的字符串

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

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

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

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

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

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

(2)实例

例1

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

以上输出结果为:

  (0, 3)
None

例2

 import re
 content = '577 zeke'
 result = re.match(r'[a-z]\d' , content)
 if result:
   print result.group()
 else:
   print 'No match!'

 以上执行结果如下:

 No match!

2.pattern.match方法

(1) 函数语法

  pattern.match( 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.match和pattern.match区别

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

search

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正则表达式--match search方法的更多相关文章

  1. python正则表达式(4)--search方法

    1.re.search函数 re.search 扫描整个字符串并返回第一个成功的匹配,如果匹配失败search()就返回None. (1)函数语法: re.search(pattern, string ...

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

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

  3. python中re模块的match,search方法的比较

    match 匹配字符串的开头, search匹配整个字符串

  4. python 正则表达式 re.search

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

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

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

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

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

  7. Python正则表达式(总)

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

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

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

  9. python 基础 8.3 match方法和search方法

    一,正则对象的split 方法 split(string[,maxsplit]) 按照能够匹配的字串讲string 分割后返回列表.maxsplit 用于指定最大分割次数,不指定将全部分割.来查找符合 ...

随机推荐

  1. 前端可视化项目流程,涉及three.js(webGL),3DMax技术,持续更新

    最近在做一个可视化展示的项目,记录一下流程: 建模,模型来源,可以参考沙盘展示类项目,自己建模或者拼装其他源模型(本人以前是3D建模师,可以应付一些简单的场景) 有效模型导入到web端,这里采用的ob ...

  2. easyui判断下拉列表

    {field:'state',title:'状态',width:100, formatter : function(value, row, index){ if (value == 0) { retu ...

  3. 使用elementUI滚动条之横向滚动

    用过elementUI组件应该会知道它内置一个滚动效果,官网对此组件没有相关文档,也是细心网友发现的. <el-scrollbar></el-scrollbar> 将会出现滚动 ...

  4. IFE第二天

    HTML是超文本标记语言,HTML5是下一代的HTML标准. HTML元素是组成HTML文档的部分,HTML属性为HTML元素提供附加信息. 文档类型<!DOCTYPE>声明帮助浏览器正确 ...

  5. 「Algospot」津巴布韦ZIMBABWE

    同时考验对状压DP和数位DP的理解: 传送门:$>here<$ 题意 给出一个数字$e$,现在对$e$通过$m$进行变换得到$x$:变换的要求是:1.只能改变原数字$e$各个数位的顺序(可 ...

  6. 「FFT」题单(upd 2019.4.28)

    持续更新(last upd 2019.4.28) ZJOI2014 力 [题目链接] 解法 对原式进行转换,然后卷积FFT套上去求解就可以了. 推导过程简洁版: \[F_i=\sum_{j<i} ...

  7. 金蝶K3 wise 插件二次开发与配置

    金蝶K3 wise 插件二次开发与配置 开发环境:K/3 Wise 13.0.K/3 Bos开发平台.Visual Basic 6.0 目录 一.二次开发插件编程二.代码演示三.配置插件四.测试插件五 ...

  8. 第七周java学习总结

    学号 20175206 <Java程序设计>第七周学习总结 教材学习内容总结 第八章: 主要内容 String类 StringTokenizer类 Scanner类 StringBuffe ...

  9. CC1310 笔记

    GPIO控制: #include <ti/drivers/GPIO.h> GPIO_init() 函数会调用 结构体实例 GPIOCC26XX_config,把需要使用到的GPIO放一起, ...

  10. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...