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自带的方法,但功能十 ...
随机推荐
- mysql的sql_mode介绍和修改
原文链接: http://blog.csdn.net/wulantian/article/details/8905573 mysql目录下有一个配置文件my.conf. mysql数据库有一个环境 ...
- redis 笔记(二)
在上一篇中提到了数据类型 ,在本章中就具体说说这几种数据类型: sting :set /get / del / append /strlen 简单的对key-->value 写入读取删除增减 i ...
- React学习笔记 - 组件&Props
React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...
- 学习笔记-java 集合
背景: 看的是<java核心技术 第8版>,覆盖jdk1.6.主要是对集合全局和细节进行全面掌握,较深入的理解集合.本人对java比较熟悉,但是对于细节的理解不深,知识点还不全,这是知识的 ...
- oracle_procedure
define: 存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句 集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. ...
- WIN10安装VS2013出现兼容性问题解决
在WIN10安装VS2013时,会提示“windows程序兼容模式已打开”,通过搜索引擎搜索的常见方案为: 1.使用命令行安装,进入vs_ultimate文件所在目录,输入:vs_ultimate / ...
- 分享一个settings.xml
<?xml version="1.0" encoding="UTF-8"?> <settings> <localRepositor ...
- HDU 4117 GRE Words
这道题不难想到这样的dp. dp[字符串si] = 以si为结尾的最大总权值. dp[si] = max(dp[sj]) ,1.j < i,2.sj是si的子串. 对于第二个条件,是一个多模版串 ...
- 【LOJ6052】「雅礼集训 2017 Day11」DIV(杜教筛)
点此看题面 大致题意: 求\(1\sim n\)内所有满足\(a>0\)的约数\(a+bi\)的\(a\)之和. 解题思路 首先,我们设\(x=(a+bi)(c+di)(1\le x\le n) ...
- Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2) C. Fountains 【树状数组维护区间最大值】
题目传送门:http://codeforces.com/contest/799/problem/C C. Fountains time limit per test 2 seconds memory ...