Python 正则表达式大全(推荐)

目录
  • 1 前言
  • 2 基本语法
    • 2.1 match函数
    • 2.2 search 函数
    • 2.3 sub 函数
  • 3 特殊类语法
    • 3.1 字符类
    • 3.2 特殊字符类
    • 3.3 重复匹配
    • 3.4 非贪婪重复
    • 3.5 圆括号分组
    • 3.6 反向引用
    • 3.7 锚点
    • 3.8 带括号的特殊语法

1 前言

正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。

上面都是官方的说明,博主自己的理解是(仅供参考):通过事先规定好一些特殊字符的匹配规则,然后利用这些字符进行组合来匹配各种复杂的字符串场景。比如现在的爬虫和数据分析,字符串校验等等都需要用到正则表达式来处理数据。

python的正则表达式则是re模块了:

  • re 模块使 Python 语言拥有全部的正则表达式功能。
  • re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

2 基本语法

2.1 match函数

只从字符串的最开始与pattern进行匹配,下面是函数的语法 :

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

这里是参数的描述 :

  • p attern - 这是要匹配的正则表达式。
  • string - 这是字符串,它将被搜索用于匹配字符串开头的模式。
  • flags - 可以使用按位OR(|)指定不同的标志。这些是修饰符,如下表所列。
  • re.match 函数在成功时返回匹配对象,失败时返回None。使用match(num)或groups函数匹配对象来获取匹配的表达式。

示例

#未从初始位置匹配,会返回None import re line = ‘i can speak good english'matchObj = re.match(r's(w*)s(w*).*',line)if matchObj:print(‘matchObj.group :',matchObj.group)print(‘matchObj.group :',matchObj.group(1))print(‘matchObj.group :',matchObj.group(2))print(‘matchObj.group :',matchObj.group(3))else:print(‘no match!')

#从初始位置开始匹配import re line = ‘i can speak good english'matchObj = re.match(r'(i)s(w*)s(w*).*',line)if matchObj:print(‘matchObj.group :',matchObj.group)print(‘matchObj.group :',matchObj.group(1))print(‘matchObj.group :',matchObj.group(2))print(‘matchObj.group :',matchObj.group(3))else:print(‘no match!')

2.2 search 函数

与match工作的方式一样,但是search不是从最开始匹配的,而是从任意位置查找第一次匹配的内容。下面是这个函数的语法 :

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

这里是参数的描述 :

  • pattern - 这是要匹配的正则表达式。
  • string - 这是字符串,它将被搜索用于匹配字符串开头的模式。
  • flags - 可以使用按位OR(|)指定不同的标志。这些是修饰符,如下表所列。
  • re.search函数在成功时返回匹配对象,否则返回None。使用match对象的group(num)或groups函数来获取匹配的表达式。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架微♥信:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

示例

import re line = ‘i can speak good english'matchObj = re.search('(.) (.?) (.*)',line)if matchObj:print(‘matchObj.group :',matchObj.group)print(‘matchObj.group :',matchObj.group(1))print(‘matchObj.group :',matchObj.group(2))print(‘matchObj.group :',matchObj.group(3))else:print(‘no match!')

2.3 sub 函数

使用正则表达式re模块中的最重要的之一是sub。

re.sub(pattern, repl, string, max=0)

此方法使用repl替换所有出现在RE模式的字符串,替换所有出现,除非提供max。此方法返回修改的字符串。

示例

import re line = ‘i can speak good english'speak = re.sub(r'can',‘not',line)print(speak)speak1 = re.sub(r's','',line) #替换所有空格print(speak1)

3 特殊类语法

3.1 字符类

3.2 特殊字符类

3.3 重复匹配

3.4 非贪婪重复

这匹配最小的重复次数:

3.5 圆括号分组

3.6 反向引用

与以前匹配的组再次匹配

3.7 锚点

需要指定匹配位置。

3.8 带括号的特殊语法

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

(0)

相关推荐

  • python使用正则表达式匹配txt特定字符串(有换行)

    在原txt文件中,我们需要匹配出的字符串为:休闲服务(中间参杂着换行) 直接复制到notebook里进行处理 ①发现需要拿出的字符串都在证卷研究报告前,第一步就把证券报告前面的所有内容全部提出来(包括换行) ②发现需要的字符串在两个换行符(\n)的中间,再对其进行处理 完整代码 import re txt = """ 行业报告 | 行业点评 休闲服务 证券研究报告""" result = re.findall(r"([\s\S]*)证券

  • Python爬虫教程之利用正则表达式匹配网页内容

    前言 Python爬虫,除了使用大家广为使用的scrapy架构外,还有很多包能够实现一些简单的爬虫,如BeautifulSoup.Urllib.requests,在使用这些包时,有的网络因为比较复杂,比较难以找到自己想要的代码,在这个时候,如果能够使用正则表达式,将能很方便地爬取到自己想要的数据. 何为正则表达式 正则表达式是一种描述字符串排列的一种语法规则,通过该规则可以在一个大字符串中匹配出满足规则的子字符串.简单来说,就是给定了一个字符串,在字符串中找到想要的字符串,如一个电话号码,一个I

  • Python正则表达式如何匹配中文

    用 '[\u4e00-\u9fa5]' 匹配中文 在字符串中匹配中文 示例: 匹配字符串中的第一个中文字符 匹配字符串中的第一个连续的中文片段 匹配字符串中的所有中文字符 注:要确保正则字符和匹配文本是 unicode 范围内的编码. 其他 扩充 范围 几个主要非英文语系字符范围: 2E80-33FFh:中日韩符号区.收容康熙字典部首.中日韩辅助部首.注音符号.日本假名.韩文音符,中日韩的符号.标点.带圈或带括符文数字.月份,以及日本的假名组合.单位.年号.月份.日期.时间等. 3400-4DF

  • python正则表达式re.search()的基本使用教程

    1 re.search() 的作用: re.search会匹配整个字符串,并返回第一个成功的匹配.如果匹配失败,则返回None 从源码里面可以看到re.search()方法里面有3个参数 pattern: 匹配的规则, string : 要匹配的内容, flags 标志位 这个是可选的,就是可以不写,可以写, 比如要忽略字符的大小写就可以使用标志位 flags 的主要内容如下 flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为: re.I 忽略大小写 re.L 表示特殊字

  • python正则表达式re.match()匹配多个字符方法的实现

    1.  *表示匹配任意多个字符   \d*表示匹配任意多个数字字符 import re text = "123h1ello world" text1 = "123Hello world456" text2 = "hello world" res = re.match("\d*", text) res1 = re.match("\d*", text1) res2 = re.match("\d*&qu

  • Python 正则表达式大全(推荐)

    目录 1 前言 2 基本语法 2.1 match函数 2.2 search 函数 2.3 sub 函数 3 特殊类语法 3.1 字符类 3.2 特殊字符类 3.3 重复匹配 3.4 非贪婪重复 3.5 圆括号分组 3.6 反向引用 3.7 锚点 3.8 带括号的特殊语法 1 前言 正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"))操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串&quo

  • JavaScript 表单验证正则表达式大全[推荐]

    具体和函数结合的使用方法,还请查看下篇文章 JavaScript 使用正则表达式进行表单验证的示例代码 复制代码 代码如下: 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?

  • Python正则表达式的7个使用典范(推荐)

    作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. 将介绍Python中对字符串进行搜索和查找的一些方法,讨论如何使用分组来处理我们查找到的匹配对象的子项. 使用的Python中正则表达式的模块通常叫做're'. >>> import re 1.Python中的原始类型字符串 Python编译器用''(反斜杠)来表示字符串常量中的转义字符. 如果反斜杠后面跟着一串编译器能够识别的特殊字符,那么整个转义序列将

  • python常用的正则表达式大全

    1.正则表达式 正则表达式是用来匹配与查找字符串的,从网上爬取数据自然或多或少会用到正则表达式,python的正则表达式要先引入re模块,正则表达式以r引导,例如: 其中**r“\d+”**正则表达式表示匹配连续的多个数值,search是re中的函数,从"abc123cd"字符串中搜索连续的数值,得到"123",返回一个匹配对象,结果如上. 2.字符串"\d"匹配0~9之间的一个数值 3.字符"+"重复前面一个匹配字符一次或者

  • python正则表达式用法超详细讲解大全

    目录 一.re.compile 函数 二.正则表达式 表示字符 表示数字 匹配边界 三.re模块的高级用法 1.findall:pattern在string里所有的非重复匹配,返回一个迭代器iterator保存了匹配对象 2.sub:将匹配到的字符串,再次进行操作 3.split:切割匹配成功的字符串 四.贪婪和非贪婪模式 总结 一.re.compile 函数 作用:compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这

  • python正则表达式面试题解答

    三道python正则表达式面试题,具体如下 1.去除以下html文件中的标签,只显示文本信息. <div> <p>岗位职责:</p> <p>完成推荐算法.数据统计.接口.后台等服务器端相关工作</p> <p><br></p> <p>必备要求:</p> <p>良好的自我驱动力和职业素养,工作积极主动.结果导向</p> <p> <br><

  • Python正则表达式学习小例子

    正则表达式是处理字符串的强大工具.作为一个概念而言,正则表达式对于Python来说并不是独有的.但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别. (1)匹配1-100之间的数 import re s = '100' # 1-100内的任意数字 ret = re.match(r'(100|[1-9]\d{0,1})$',s) print(ret.group()) (100|[1-9]\d{0,1})$ 100可以匹配100 | 或者匹配[1-9]中的一个数,然后后面\d是数字

  • python正则表达式实例代码

    re 模块使 Python 语言拥有全部的正则表达式功能. 会用到的语法 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.ab.abb 等 ? 匹配前面的一次或0次 Ab?: A.Ab 等 ^ 作为开始标记 ^a:abc.aaaaaa等 $ 作为结束标记 c$:abc.cccc 等 \d 数字 3.4.9 等 正则字符 释义 举例 + 前面元素至少出现一次 ab+:ab.abbbb 等 * 前面元素出现0次或多次 ab*:a.

  • Python 正则表达式基础知识点及实例

    1. 什么是正则表达式 正则表达式(Regular Expressions),也称为 "regex" 或 "regexp" 是使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串,这样程序就可以将该模式与任意文本字符串相匹配. 使用正则表达式,可以为要匹配的可能字符串集指定规则:此集可能包含英语句子,电子邮件地址,TeX命令或你喜欢的任何内容 正则表达式引擎 采用不同算法,检查处理正则表达式的软件模块 PCRE (perl compatible regular

  • Python正则表达式re模块详解(建议收藏!)

    目录 前言 match 匹配字符串 单字符匹配 . 匹配任意一个字符 \d 匹配数字 \D 匹配非数字 \S 匹配非空白 \w 匹配单词.字符,如大小写字母,数字,_ 下划线 \W 匹配非单词字符 [ ] 匹配[ ]中列举的字符 表示数量 * 出现0次或无数次 + 至少出现一次 ? 1次或则0次 {m,} 至少出现m次 匹配边界 $ 匹配结尾字符 ^ 匹配开头字符 \b 匹配一个单词的边界 \B 匹配非单词边界 匹配分组 | 匹配左右任意一个表达式 (ab) 将括号中字符作为一个分组 searc

随机推荐