Python正则表达式-基础

本文转载自昔日暖阳,原文地址:http://www.osheep.cn/4806.html

python使用正则,需要先引入re模块

import re

匹配符

单个字符表达式 含义
[0-9] 0123456789任意之一
[a-z] 小写字母任意之一
[A-Z] 大写字母任意之一
\d 等同于[0-9]
\D 等同于[^0-9]匹配非数字,即\d的取反
\w 等同于[a-z0-9A-Z_]匹配大小写字母、数字和下划线
\W 等同于[^a-z0-9A-Z_]等同于上一条取反
. 一个任意字符

匹配模式

匹配模式表达式 含义
? 指定字符一次或者不出现
+ 至少出现一次
* 出现任意次,包括不出现
^ 从字符串开头进行匹配
$ 匹配到字符串的结尾
() 分组符、也可用于或匹配

案例一:匹配邮箱

  • 匹配126,163邮箱地址
# 匹配126,163邮箱地址
ret = re.match(r"^[0-9a-zA-Z_]{4,20}@(163|126)\.com$", 'hello@126.com')
if ret:
print('符合要求 - ', ret.group(), ret.group(1))
else:
print('不符合要求!')

案例二:匹配邮箱并进行分组取值

  • 匹配126,163邮箱地址
# 使用()对匹配值进行分组,可以方便的取得匹配值
# 分组1表示@前面的字符串
# 分组2表示163或者126
ret = re.match(r"^([0-9a-zA-Z_]{4,20})@(163|126)\.com$", 'hello@126.com')
if ret:
print('符合要求 - ', ret.group(), ret.group(1), ret.group(2))
else:
print('不符合要求!')

案例三:在正则表达式中使用分组

  • 匹配网页源代码块
# 在正则表达式中使用分组
# 使用\分组数表示需要使用的分组
ret = re.match(r"^<(\w+)>.*</(\1)>$", '<h1>hello</h1>')
if ret:
print('符合要求 - ', ret.group())
else:
print('不符合要求!')
  • 使用多个分组
# 在正则表达式中使用分组
# 使用\分组数表示需要使用的分组,这里表示多个分组
ret = re.match(r"^<(\w+)><(\w+)>.*</(\2)></(\1)>$", '<body><h1>hello</h1></body>')
if ret:
print('符合要求 - ', ret.group())
else:
print('不符合要求!')

案例四:在正则表达式中对分组进行命名

  • 对分组进行命名 语法:标记分组 ?P 引用分组 ?P=name
# 在正则表达式中使用分组
# 使用\分组数表示需要使用的分组,这里表示多个分组
ret = re.match(r"^<(?P<p1>\w+)><(?P<p2>\w+)>.*</(?P=p2)></(?P=p1)>$", '<body><h1>hello</h1></body>')
if ret:
print('符合要求 - ', ret.group())
else:
print('不符合要求!')

Python正则表达式-基础的更多相关文章

  1. python正则表达式基础篇

    1.正则表达式基础 1.1简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...

  2. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

  3. Python正则表达式基础

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  4. Python正则表达式基础指南

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  5. Python正则表达式的简单应用和示例演示

    前一阵子小编给大家连续分享了十篇关于Python正则表达式基础的文章,感兴趣的小伙伴可以点击链接进去查看.今天小编给大家分享的是Python正则表达式的简单应用和示例演示,将前面学习的Python正则 ...

  6. Python正则表达式初识(六)

    继续分享Python正则表达式基础,今天给大家分享的正则表达式特殊符号是“[]”.中括号十分实用,其有特殊含义,其代表的意思是中括号中的字符只要满足其中任意一个就可以.其用法一共有三种,分别对其进行具 ...

  7. Python正则表达式初识(四)

    今天继续给大家分享Python正则表达式基础知识,主要给大家介绍一下特殊字符“{}”的用法,具体的教程如下. 特殊字符“{}”实质上也是一个限定词的用法,其限定前面字符所出现的次数,其常用的模式有三种 ...

  8. Python正则表达式初识(三)

    前几天给大家分享了Python正则表达式基础(一)和Python正则表达式基础(二),感兴趣的小伙伴可以点击进去学习,今天继续给大家分享Python正则表达式基础. 1.正则表达式特殊字符“+”,其代 ...

  9. 正则表达式基础---转自 Python正则表达式指南 前边

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

随机推荐

  1. html表格设置

    表格 表格由 <table> 标签来定义.每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义).字母 td 指表格数据(t ...

  2. matlab练习程序(单源最短路径Dijkstra)

    图的相关算法也算是自己的一个软肋了,当年没选修图论也是一大遗憾. 图像处理中,也有使用图论算法作为基础的相关算法,比如图割,这个算法就需要求最大流.最小割.所以熟悉一下图论算法对于图像处理还是很有帮助 ...

  3. t d x 示例z

    using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi ...

  4. WAKE-WIN10-SOFT-CMAKE

    1,CMAKE 官网:https://cmake.org/ 下载:https://cmake.org/download/ BING:https://www.bing.com/search?q=cmak ...

  5. 用大白话告诉你什么是Event Loop

    文章原文地址 前沿 从前有座山,山里有座庙,庙里有个小和尚在讲故事.讲什么呢?讲的是: 从前有座山,山里有座庙,庙里有个小和尚在讲故事.讲什么呢?讲的是: 从前有座山,山里有座庙,庙里有个小和尚在讲故 ...

  6. Dll注入:修改PE文件 IAT注入

    PE原理就不阐述了, 这个注入是PE感染的一种,通过添加一个新节注入,会改变PE文件的大小,将原有的导入表复制到新节中,并添加自己的导入表描述符,最后将数据目录项中指向的导入表的入口指向新节. 步骤: ...

  7. MySQL30条规范解读

    转载自:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651959906&idx=1&sn=2cbdc66cfb ...

  8. libevent-signal(2)

    上一节着重分析了event_init是如何集成signal,这一节从event_add展开分析 ev_events有四种类型 I/O事件: EV_WRITE和EV_READ 定时事件:EV_TIMEO ...

  9. 20165322 2017-2018-2《Java程序设计》课程总结

    20165322 2017-2018-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:我期望的师生关系 预备作业2:做中学learning by doing个人感想 预备作业 ...

  10. 【LOJ6062】「2017 山东一轮集训 Day2」Pair(线段树套路题)

    点此看题面 大致题意: 给出一个长度为\(n\)的数列\(a\)和一个长度为\(m\)的数列\(b\),求\(a\)有多少个长度为\(m\)的子串与\(b\)匹配.数列匹配指存在一种方案使两个数列中的 ...