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. sql server性能分析--执行sql次数和逻辑次数

    目前在做一个项目优化时,想通过数据库层分析sql server系统性能,查了一下网上代码,修改了一下标题和DMVs代码,以下代码可以用来分析系统运行一段时间后,那些语句是系统忙的sql语句.做为参考. ...

  2. May 18th 2017 Week 20th Thursday

    The greater the struggle, the more glorious the triumph. 挑战愈艰巨,胜利愈辉煌. Sometimes it would be better t ...

  3. Twitter Typeahead plugin Example

    原文网址: http://dhtmlexamples.com/2012/02/27/using-the-typeahead-plugin-with-twitter-bootstrap-2-and-jq ...

  4. ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(六)之 好友申请、同意、拒绝

    不知道距离上一篇多久没有写了,可能是因为忙(lan)的关系吧.废话不多说,今天要介绍的不算什么新知识,主要是逻辑上的一些东西.什么逻辑呢,加好友,发送好友申请,对方审批通过,拒绝.(很遗憾,对方审批通 ...

  5. 用keytool制作证书并在tomcat配置https服务(四)

    用keytool制作证书并在tomcat配置https服务(一) 用keytool制作证书并在tomcat配置https服务(二) 用keytool制作证书并在tomcat配置https服务(三) 上 ...

  6. 使用vue搭建项目(创建手脚架)

    第一步:切换到创建的目录 创建项目 vue cerate [model] 第二步:切换到创建好的项目,然后创建element vue add element 第三步:创建router vue add ...

  7. 运行出现Server Tomcat v8.5 Server at localhost failed to start.和A child container failed during start

    出现问题: 解决方法: 1.看servlet文件中的@WebServlet“()”,里面是否少了/字符,如图: 加上即可,有问题随时留言,欢迎您的咨询!

  8. Ajax去除缓存

    1.在Ajax发送请求钱加上anyAjaxObj.setRequestHeader("If-Modeified-Since","0").2.在Ajax发送请求钱 ...

  9. 今天升级win10.vs调试程序各种崩溃

    今天升级win10.vs调试程序各种崩溃.感觉代码没问题.崩溃时有时没有.不知道是win10的问题,好真是我的代码问题. 问题1: 尝试读取或写入受保护的内存.这通常指示其他内存已损坏 不过.当我写这 ...

  10. 我和我的广告前端代码(六):webpack工程合并、也许我不需要gulp

    随着年初开始使用webpack重构公司的广告代码,已经有将近一年的时间了,需求也渐渐的稳定了.我想也是时候将这几个工程整理一下,顺带着处理一些历史问题. 由于当年各个业务线没有整合.需求也没有固定,考 ...