一文掌握Python正则表达式

目录
  • re 模块的使用
    • 匹配方法的使用
    • re 模块其他方法的使用
  • 正则表达式基础
    • 匹配数字
    • 匹配字符
    • 匹配符号

正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本。最初的正则表达式出现于理论计算机科学的自动控制理论和形式化语言理论中。

安装 Python 解释器/anaconda。

安装好 jupyter lab。

re 模块的使用

匹配方法的使用

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

# 导入 re 模块
import re
print(re.match('www', 'www.huawei.com').span()) # 在起始位置匹配
print(re.match('com', 'www.huawei.com')) # 不在起始位置匹配

输出: (0, 3)

None

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

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

输出: (0, 3)
        (11, 14)

compile 方法的使用

re.compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

pattern = re.compile(r'\d+') # 用于匹配至少一个数字
n = pattern.match('one12twothree34four') # 查找头部,没有匹配
print(n) # 从'e'的位置开始匹配,没有匹配
m = pattern.search('one12twothree34four')
print(m)
print(m.group())

输出: None 
            12

re 模块其他方法的使用

re.sub 用于替换字符串中的匹配项:
phone = "2021-0101-000 # 这是一个电话号码"
# 删除字符串中的 Python 注释
num = re.sub(r'#.*$', "", phone)
print("电话号码是: ", num) # 删除非数字(-)的字符串
num = re.sub(r'\D', "", phone)
print("电话号码是 : ", num) 

输出:
电话号码是: 2021-0101-000
电话号码是 : 20210101000

正则表达式基础

匹配数字

使用正则表达式来匹配数字:

# 匹配文本中的所有数字
str_ = "996.ICU 指工作 996、生病 ICU,也就是工作从早上 9 点上班到晚上 9 点下班,每周工作 6 天, 生病了就住进 ICU"
num1 = re.findall(r'\d+', str_) # 使用\d 匹配数字,+表示匹配多次
print(num1)
num2 = re.findall(r'[0-9]{1,3}', str_) # 正则表达式不唯一,可以使用[]指定匹配元素的范围 {}指定次数
print(num2)

输出: ['996', '996', '9', '9', '6']
       ['996', '996', '9', '9', '6']

匹配字符

使用\w 可以匹配数字字母下划线:

匹配符号

# 匹配文本中的所有符号
s6 = re.findall(r'\W+', str_)
print(s6)

到此这篇关于Python正则表达式的文章就介绍到这了,更多相关Python正则表达式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python利用正则表达式从字符串提取数字

    目录 前言 利用正则表达式从字符串提取数字 附python正则表达式抽取文本中的时间日期 总结 前言 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. 利用正则表达式从字符串提取数字 主要用到下面几个函数 (1)compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则

  • 超详细讲解python正则表达式

    目录 正则表达式 1.1 正则表达式字符串 1.1.1 元字符 1.1.2 字符转义 1.1.3 开始与结束字符 1.2 字符类 1.2.1 定义字符类 1.2.2 字符串取反 1.2.3 区间 1.2.4 预定义字符类 1.3 量词 1.3.1 量词的使用 1.3.2 贪婪量词和懒惰量词 1.4 分组 1.4.1 分组的使用 1.4.2 分组命名 1.4.3 反向引用分组 1.4.4 非捕获分组 1.5 re模块 1.5.1 search()和match()函数 1.5.2 findall()

  • python正则表达式查找和替换内容的实例详解

    1.编写Python正则表达式字符串s. 2.使用re.compile将正则表达式编译成正则对象Patternp. 3.正则对象p调用p.search或p.findall或p.finditer查找内容. 4.正则对象p调用p.sub或p.subn替换内容. 实例 import re s = "正则表达式" p = re.compile(s) # 查找 mf1 = p.search("检测内容") mf2 = p.findall("检测内容") m

  • python中使用正则表达式的方法详解

    目录 search(pattern, string, flags=0) findall(pattern, string, flags=0) sub(pattern, repl, string, count=0, flags=0) compile(pattern, flags=0) flags的一些常用值 总结 在python中使用正则表达式,主要通过下面的几个方法 search(pattern, string, flags=0) 扫描整个string并返回匹配pattern的结果(None或对象

  • python正则表达式最详解

    目录 一.正则表达式–元字符 1. 数量词 2. 字符匹配 3. 边界匹配 4. 组 5. 匹配模式参数 二.方法 re.findall re.match group匹配对象 re.search re.compile 三.检索和替换 re.sub 替换字符串 总结 一.正则表达式–元字符 re 模块使 Python 语言拥有全部的正则表达式功能 1. 数量词 # 提取大小写字母混合的单词 import re a = 'Excel 12345Word23456PPT12Lr' r = re.fin

  • 一文秒懂python正则表达式常用函数

    导读: 正则表达式是处理字符串类型的"核武器",不仅速度快,而且功能强大.本文不过多展开正则表达式相关语法,仅简要 介绍 python中正则表达式常用函数及其使用方 法,以作快速查询浏览. 01 Re概览 Re模块是python的内置模块,提供了正则表达式在python中的所有用法,默认安装位置在python根目录下的Lib文件夹(如 ..\Python\Python37\Lib).主要提供了3大类字符串操作方法: 字符查找/匹配 字符替换 字符分割 由于是面向字符串类型的模块,就不得

  • 一文掌握Python正则表达式

    目录 re 模块的使用 匹配方法的使用 re 模块其他方法的使用 正则表达式基础 匹配数字 匹配字符 匹配符号 正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述.匹配某个句法规则的字符串,常被用来检索.替换那些符合某个模式(规则)的文本.最初的正则表达式出现于理论计算机科学的自动控制理论和形式化语言理论中. 安装 Python 解释器/anaconda. 安装好 jupyter lab. re 模块的使用 匹配方法的使用 re.match 尝试从字符串的

  • Python 正则表达式(转义问题)

    先说一个比较囧的事情:在写虾米音乐试听下载器的时候遇到一个问题,因为保存的文件都是用音乐的标题命名的,所以碰到一些诸如「対峙/out border」等含有非法字符(哼哼,说的就是你 →_→ Windows)的标题的时候,就会保存失败.于是我想起了迅雷的解决方法:把所有的非法字符替换成下划线. 于是就引入了正则表达式的使用.一番搜索囫囵吞枣后,我写下了这样的函数: 复制代码 代码如下: def sanitize_filename(filename): return re.sub('[\/:*?<>

  • 详解Python 正则表达式模块

    由于最近需要使用爬虫爬取数据进行测试,所以开始了爬虫的填坑之旅,那么首先就是先系统的学习下关于正则相关的知识啦.所以将下面正则方面的知识点做了个整理.语言环境为Python.主要讲解下Python的Re模块. 下面的语法我就主要列出一部分,剩下的在python官网直接查阅即可: docs.python.org/3/library/r- 一.基础语法总结 1.1.匹配单个字符 a . \d \D \w \W \s \S [...] [^...] 匹配单个字符(.) 规则:匹配除换行之外的任意字符

  • python正则表达式re之compile函数解析

    re正则表达式模块还包括一些有用的操作正则表达式的函数.下面主要介绍compile函数. 定义: compile(pattern[,flags] ) 根据包含正则表达式的字符串创建模式对象. 通过python的help函数查看compile含义: help(re.compile) compile(pattern, flags=0) Compile a regular expression pattern, returning a pattern object. 通过help可以看到compile

  • 基于Python正则表达式提取搜索结果中的站点地址

    正则表达式对于Python来说并不是独有的,最近在把google搜索的结果中所有的站点地址导出,于是想到用python正则表达式提取搜索结果中的站点地址. 这其中涉及几个需要解决的问题: 1.获取搜索的结果文本 为了获得更多的地址,我使用了Google的高级搜索功能,每个页面显示100条结果. 获得显示的结果后,可以查看源码,并保持成文本文件就有了搜索的结果文本 2.分析如何提取站点信息 首先需要分析获取的页面,查看以怎样的方式可以提取出站点信息. 我使用IE8自带的开发工具(按F12就会弹出来

  • Python正则表达式教程之一:基础篇

    前言 之前有人提了一个需求,我一看此需求用正则表达式最合适不过.考虑到之前每次使用正则表达式,都是临时抱佛脚,于是这次我就一边完成任务一边系统的学习了一遍正则表达式.主要参考PyCon2016上的一个视频Regular Expressions. 我将分几篇文章对正则表达式进行总结. 以下是第一部分,基础:  基础部分 这里总结了正则表达式最基础的用法,其中大部分内容对我(以及大部分程序员)来说都是平时经常用到的,所以我就一笔带过了,只对其中的几处用例子说明. .           除了换行之外

  • Python正则表达式的七个使用范例详解

    作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. 本文是一系列关于Python正则表达式文章的其中一部分.在这个系列的第一篇文章中,我们将重点讨论如何使用Python中的正则表达式并突出Python中一些独有的特性. 我们将介绍Python中对字符串进行搜索和查找的一些方法.然后我们讲讨论如何使用分组来处理我们查找到的匹配对象的子项. 我们有兴趣使用的Python中正则表达式的模块通常叫做're'. >>>

  • Python正则表达式常用函数总结

    本文实例总结了Python正则表达式常用函数.分享给大家供大家参考,具体如下: re.match() 函数原型: match(pattern, string, flags=0)     Try to apply the pattern at the start of the string,      returning a match object, or None if no match was found. 函数作用: re.match函数尝试从字符串的开头开始匹配一个模式,如果匹配成功,返

  • Python正则表达式知识汇总

    1. 正则表达式语法 1.1 字符与字符类   1 特殊字符:\.^$?+*{}[]()| 以上特殊字符要想使用字面值,必须使用\进行转义   2 字符类      1. 包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时如果没有指定量词则只会匹配其中的一个.   2. 字符类内可以指定范围,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之间的任何一个字符   3. 左方括号后跟随一个^,表示否定一个字符类,比如[^0-9]表示可以匹配一个任意非数字的字符.   4. 字符类内部,

随机推荐