Python正则表达式-基础
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正则表达式-基础的更多相关文章
- python正则表达式基础篇
1.正则表达式基础 1.1简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...
- python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别
正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...
- Python正则表达式基础
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- Python正则表达式基础指南
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- Python正则表达式的简单应用和示例演示
前一阵子小编给大家连续分享了十篇关于Python正则表达式基础的文章,感兴趣的小伙伴可以点击链接进去查看.今天小编给大家分享的是Python正则表达式的简单应用和示例演示,将前面学习的Python正则 ...
- Python正则表达式初识(六)
继续分享Python正则表达式基础,今天给大家分享的正则表达式特殊符号是“[]”.中括号十分实用,其有特殊含义,其代表的意思是中括号中的字符只要满足其中任意一个就可以.其用法一共有三种,分别对其进行具 ...
- Python正则表达式初识(四)
今天继续给大家分享Python正则表达式基础知识,主要给大家介绍一下特殊字符“{}”的用法,具体的教程如下. 特殊字符“{}”实质上也是一个限定词的用法,其限定前面字符所出现的次数,其常用的模式有三种 ...
- Python正则表达式初识(三)
前几天给大家分享了Python正则表达式基础(一)和Python正则表达式基础(二),感兴趣的小伙伴可以点击进去学习,今天继续给大家分享Python正则表达式基础. 1.正则表达式特殊字符“+”,其代 ...
- 正则表达式基础---转自 Python正则表达式指南 前边
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
随机推荐
- Qt之QSS(样式表语法)
http://blog.csdn.net/liang19890820/article/details/51691212 版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣.好玩.靠谱...作者: ...
- MySQL的基础(优化)3
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...
- springMVC通过ajax传参到后台
JSON对象和JSON字符串 在SpringMVC环境中,@RequestBody接收的是一个Json对象的字符串,而不是一个Json对象.然而在ajax请求往往传的都是Json对象,用 JSON.s ...
- Windows平台,Oracle Database和Client并存方式
由于某些特定需求,生产环境需要在同一台机器上同时安装Database Server和Client,因为plsql没有64位客户端,无法读取64位database的oci.dll文件,所以需要一个32位 ...
- Perl实用中文处理步骤(修改版)
发信人: FenRagwort (泽), 信区: Perl标 题: Perl实用中文处理步骤(修改版)发信站: 水木社区 (Mon Feb 14 12:52:14 2011), 转信 (修改版 感谢 ...
- 【转载】#443 - An Interface Cannot Contain Fields
An interface can contain methods, properties, events or indexers. It cannot contain fields. interfac ...
- ArcGIS Server Java 9.3 REST API的中文查询问题的解决方案
[2009.2.18补注]这个问题在SP1 for Linux中修复,SP1 for Windows下问题更加严重,如果打了SP1 for Windows,还想使用REST服务,就必须使用Linux或 ...
- cs229 斯坦福机器学习笔记(一)-- 入门与LR模型
版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/Dinosoft/article/details/34960693 前言 说到机器学习,非常多人推荐的学习资 ...
- jackson简单实用
---------------------------------------------------------------------------------------------------- ...
- java json和对象互转
开发过程中遇到一些对象转string和string转对象的问题,浪费了很久,现在用的熟练些了,总结如下: 1.字符串尽量定义成json可解析的,如{"name":"a&q ...