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

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

以上输出结果为:

(0,3)None

例2

importre

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

importreprint(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 search返回值_python正则表达式--match search方法相关推荐

  1. python 菜鸟:返回值_Python中的真实值和虚假值:详细介绍

    python 菜鸟:返回值 欢迎 (Welcome) In this article, you will learn: 在本文中,您将学习: What truthy and falsy values ...

  2. python return返回值_Python return语句 函数返回值

    return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天就来仔细的讲解一下. python 函数返回值 ...

  3. python findall返回值_Python re 模块findall() 函数返回值展现方式解析

    findall 函数: 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表. 注意: match 和 search 是匹配一次 findall 匹配所有,mat ...

  4. python函数返回值_Python中函数的返回值示例浅析

    前言: 前面我们介绍了简单的介绍了函数和函数的参数,今天我们来说一下Python中函数的返回值. 函数的返回值:函数运算的结果,需要进一步的操作时,给一个返回值return用来返回函数的结果,如果没有 ...

  5. python多线程返回值_python获取多线程及子线程的返回值

    最近有个需求,用多线程比较合适,但是我需要每个线程的返回值,这就需要我在threading.Thread的基础上进行封装 import threading class MyThread(threadi ...

  6. python获取返回值_python 调用 shell ,获取返回值和返回信息

    网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息. def run_linux_cmd_quiet( ...

  7. python字典更新值_Python 字典 update() 使用方法及示例

    Python 字典 update() 使用方法及示例 update()方法向字典插入指定的项目.这个指定项目可以是字典或可迭代对象. 如果键不在字典中,则update()方法将元素添加到字典中.如果键 ...

  8. python writerow 返回值_python – .writerow()csv返回一个数字而不是写行

    我正在使用Python 3测试一些非常简单的代码.出于某种原因,下面的代码生成一个空输出,而不是写一行 import csv output = open('hello world.csv', 'w', ...

  9. python readlines返回值_Python readlines没有返回任何内容?

    您已经读取了文件并且文件指针不在文件的末尾.调用readlines()则不会返回数据. 只读取一次文件:with open('current.cfg', 'r') as current: lines ...

最新文章

  1. 拼多多高速冲刺8亿用户新时代 黄峥卸任董事长 探索行业未来十年发展
  2. python基础教程:名称空间与作用域
  3. HDU1495 非常可乐
  4. MongoDB数据导入hbase + 代码
  5. 重新想象 Windows 8 Store Apps (9) - 控件之 ScrollViewer 基础
  6. java socket 报文解析_java socket解析和发送二进制报文工具(附java和C++转化问题)
  7. html没有代码补全 vscode_借助clangd实现VSCode C++代码补全
  8. TensorFlow 教程 --进阶指南--3.6增加一个新 Op
  9. 德国精品软件推荐   压缩软件 WINRAR 个人版终于免费了。
  10. Java 第一大框架:Spring 的 IoC 跟 AOP 雏形如何实现?
  11. Java NIO和IO的主要区别
  12. php ci框架开发手册,CodeIgniter 教程 - php CodeIgniter 框架 - CodeIgniter手册
  13. EasyUI 1.5.x Of Insdep Theme 1.0.0 RC1 美化主题大包已发布
  14. 基于Edge插件+格式工厂下载B站上的喜欢视频
  15. 记一次调试WM8978音频IC过程
  16. 基于x86汇编的飞机大战
  17. 国内常见php的CMS建站系统情况分析
  18. 1、蛋白质二级结构预测方法
  19. echars x轴单位_ECharts xAxis配置 x坐标轴刻度设置
  20. 微信小程序支付错误提示“商户号mch_id或sub_mch_id不存在”

热门文章

  1. 搭建mysql 主从复制The slave I/O thread stops because master and slave have equal MySQL server UUIDs
  2. java 百万数据查询_JAVA技巧:Java中的大量数据查询
  3. linux 查看显卡信息及显卡驱动信息
  4. 柔光混合模式android,滤色与柔光两种图层混合模式的理解和应用实例
  5. 两步免费开通企业微信,不用提交资料
  6. Failed to send a request to Slack API server: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certif
  7. android 4.4 短信拦截,Android 4.4 KitKat升级率已经接近18%
  8. 给Office文档加密方式与原理揭秘
  9. 操作系统实验一 添加内核模块
  10. sRGB Color Space