首页 > 编程语言 >Python3 正则表达式

Python3 正则表达式

时间:2022-09-07 09:35:34浏览次数:91  
标签:匹配 正则表达式 matchObj re Python3 group match

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

本文主要介绍 Python 中常用的正则表达式处理函数.

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"
# .* 表示任意匹配除换行符(\n、\r)之外的任何单个或多个字符
# (.*?) 表示"非贪婪"模式,只保存第一个匹配到的子串
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 到 所含的小组号。

re.match与re.search的区别

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

以上内容来源于百科书,可以关注我了解更多.


 

标签:匹配,正则表达式,matchObj,re,Python3,group,match
From: https://www.cnblogs.com/sdjlq/p/16664137.html

相关文章

  • Python3 环境搭建
    我们将向大家介绍如何在本地搭建Python3开发环境。Python3可应用于多平台包括Windows、Linux和MacOSX。Unix(Solaris,Linux,FreeBSD,AIX,HP/UX,SunOS,IR......
  • centos 7.X 安装python3.X 使得python3.X 和 python2.x共存
    https://www.cnblogs.com/JahanGu/p/7452527.html(以亲试)https://blog.csdn.net/eastlhu/article/details/74931913https://www.cnblogs.com/FZfangzheng/p/7588944.html......
  • python3下载及安装教程(Windows)
    Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,一般默认装的是Python2版本,Windows系统上没有Pyhton环境,需要我们手动安装一下,现在一般都是python3......
  • Python3中二叉树前序遍历的迭代解决方案
    Python3中二叉树前序遍历的迭代解决方案ABinaryTree二叉树是分层数据结构,其中每个父节点最多有2个子节点。在今天的文章中,我们将讨论一个在大量技术编码面试中出现......
  • 玩转正则表达式
    玩转正则表达式本文中介绍的是主要是 3 个知识点:正则表达式的相关知识Python的中 re 模块,主要是用来处理正则表达式一个利用 re 模块通过正则表达式来进行网页......
  • windows系统 python3.6(Anaconda3)安装对应版本 torch、torchvision
    一、官网下载.whl文件https://download.pytorch.org/whl/torch_stable.html  二、使用pip命令安装打开你的anaconda,选择对应虚拟环境终端,进入刚才下载.whl 文件......
  • Shell第四章《正则表达式》
    一、前言1.1、名词解释正则表达式(regularexpression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间;例如/l[oO]ve......
  • python3之35个关键字详解
    一、python35个关键字列举:help("keywords")查看运行结果:1.and、or、not2.if、elif、else3.for、while4.True、False5.continue、break6.pass7.try、except、f......
  • Python3项目初始化10-->前端基础jquery、ajax,sweetalert--更新用户改造
    33、JS基础-ajax_post截止目前,完成了登录,创建和删除,“编辑”这块还是老的信息。打开a、点击编辑=>(内容)=>dialogb、内容=>后端ajax 页面上遍历用户时......
  • 正则表达式
     1、正则表达式构造摘要(1)字符类[abc]:a、b或c(简单类)[^abc]:任何字符,除了a、b或c(否定)[a-zA-Z]:a到z或A到Z,两头的字母包括在内(范围)(2)预定义字符类.:任何字符(与......