matchObj.group() : ", matchObj.group()) else:   print ("No match!!") matchObj = re.search( r'dogs', line, re.M|re.I) if matchObj:   print ("search --> matchObj.group() : ", matchObj.group()) else:   print ("No match!!")

以上实例运行结果如下:

No match!!
search --> matchObj.group() :  dogs

本文来源:www.lxlinux.net/8069.html,若引用不当,请联系修改。

-->

1.软文推荐

2.软文推荐

3.软文推荐

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等,本篇文章重点讲解一下Python3 中 re.match与re.search。

re.match函数

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

函数语法:

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

函数参数说明:

参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 – 可选标志

匹配成功re.match方法返回一个匹配的对象,否则返回None。

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

匹配对象方法 描述 group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组 groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号

实例

#!/usr/bin/python

import re
print(re.match('www''www.runoob.com').span())  # 在起始位置匹配
print(re.match('com''www.runoob.com'))         # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
None

实例

#!/usr/bin/python3
import re

line = "Cats are smarter than dogs"
# .* 表示任意匹配除换行符(
、
)之外的任何单个或多个字符
matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

if matchObj:
  print ("matchObj.group() : ", matchObj.group())
  print ("matchObj.group(1) : ", matchObj.group(1))
  print ("matchObj.group(2) : ", matchObj.group(2))
else:
  print ("No match!!")

以上实例执行结果如下:

matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter
re.search方法

re.search 扫描整个字符串并返回第一个成功的匹配。

函数语法:

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

函数参数说明:

参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串 flags 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。参见:正则表达式修饰符 – 可选标志

匹配成功re.search方法返回一个匹配的对象,否则返回None。

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

匹配对象方法 描述 group(num=0) 匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组 groups() 返回一个包含所有小组字符串的元组,从 1 到 所含的小组号

实例

#!/usr/bin/python3

import re

print(re.search('www''www.runoob.com').span())  # 在起始位置匹配
print(re.search('com''www.runoob.com').span())         # 不在起始位置匹配

以上实例运行输出结果为:

(0, 3)
(11, 14)

实例

#!/usr/bin/python3

import re

line = "Cats are smarter than dogs";

searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)

if searchObj:
  print ("searchObj.group() : ", searchObj.group())
  print ("searchObj.group(1) : ", searchObj.group(1))
  print ("searchObj.group(2) : ", searchObj.group(2))
else:
  print ("Nothing found!!")

以上实例执行结果如下:

searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter

re.match与re.search的区别

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

实例

#!/usr/bin/python3

import re

line = "Cats are smarter than dogs";

matchObj = re.match( r'dogs', line, re.M|re.I)
if matchObj:
  print ("match --> matchObj.group() : ", matchObj.group())
else:
  print ("No match!!")

matchObj = re.search( r'dogs', line, re.M|re.I)
if matchObj:
  print ("search --> matchObj.group() : ", matchObj.group())
else:
  print ("No match!!")

以上实例运行结果如下:

No match!!
search --> matchObj.group() :  dogs

本文来源:www.lxlinux.net/8069.html,若引用不当,请联系修改。

相关文章 8

1

VLAN划分实战 3分钟前

VLAN(Virtual LAN),翻译成中文是虚拟局域网。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所...

2

高防vps的防御措施有哪些(高防VPS服务器) 5分钟前

目录:1、网站被DDOS攻击怎么办2、高防服务器如何防御CC攻击?3、服务器被攻击的常见手段以及解决方法4、vps被打死了怎么办网站被DDOS攻击...

3

Linsvn服务器ux系统搭建 6分钟前

svn服务器是什么?Linux系统怎样搭建svn服务器?针对以上两个问题本篇文章为大家整理了一篇关于Linux系统搭建svn服务器的相关Linux教程。 ...

4

美国50g高防vps(美国高防100g 4h 4g) 7分钟前

目录:1、美国服务器有哪些类型?2、美国VPS 哪里的美国VPS好用 ?3、求推荐个,美国高防VPS,300一个月以下的就好。4、哪家美国VPS便宜又...

5

Ubuntu上安装Elisa KDE音乐播放器 10分钟前

Elisa是一款跨平台的开源免费媒体中心软件,同时也是多合一的媒体播放软件,Elisa和微软的 Media Center 一样,看照片、看电影、听音乐样样...

6

云服务器多少钱一个月(云服务一年要多少钱) 11分钟前

目录:1、购买云计算服务器需要多少的费用?2、购买云计算服务器多少钱是比较合适的?3、云服务器一般多少钱购买云计算服务器需要多少的...

7

Linux下使用Xedit具体方法 12分钟前

Xedit 是 X11 图形服务器的一部分,它不算好看,但却有足够的隐藏功能,使它成为一个严肃的文本编辑器,下面为大家讲解一下Linux下使用...

8

仿百度网盘源码(百度云源码) 15分钟前

目录:1、用C#编写网盘(仿百度网盘)怎么做2、求 源代码 百度网盘免费资源链接,谢谢3、谁有仿百度文库或者各种资料分享网站的源码?...