Python中的正则
regex_lst = [
('字符组',),
('非打印字符',),
('特殊字符',),
('定位符',),
('限定符',),
('re模块',),
('分组命名',),
('或匹配',),
('贪婪匹配与惰性匹配',),
]
字符组
[0-9]
[a-z]
[A-Z]
[^a]
非打印字符
\w 匹配字母,数字,下划线 word
\s 匹配空字符 space
\d 匹配数字 digit
特殊字符
. 匹配除换行符 \n 之外的任何单字符
定位符
^ 匹配字符串的开始位置
$ 匹配字符串的结尾位置
限定符
* 0次或多次
+ 1次或多次
? 0次或1次
{n} n次
{n,} n次或多次
{n,m} n次至m次
re模块
re_lst = [
('re.compile(regex)',),
('re.findall(pattern, str)',),
('re.finditer(pattern, str)',),
('re.search(pattern, str)',),
]
re.compile(regex)
1 import re 2 3 """ 4 re.compile(regex) 5 编译一个正则表达式模式,返回一个模式对象 6 """ 7 regex = r'[a-z]' 8 pattern = re.compile(regex)
re.findall(pattern, str)
1 import re 2 3 """ 4 re.findall(pattern, str) 5 返回所有满足匹配条件的结果,并放到列表中 6 """ 7 regex = r'[a-zA-Z]+' 8 s = 'Hello Python' 9 pattern = re.compile(regex) 10 11 lst = re.findall(pattern, s) 12 print(lst) # ['Hello', 'Python']
re.finditer(pattern, str)
1 import re 2 3 """ 4 re.finditer(pattern, str) 5 返回迭代器 6 迭代器中每一个元素需要调用group(),得到结果 7 """ 8 regex = r'[a-zA-Z]+' 9 s = 'Hello Python' 10 pattern = re.compile(regex) 11 12 iterator = re.finditer(pattern, s) 13 14 print(iterator) # <callable_iterator object at 0x000001FDB3F29BE0> 15 16 for i in iterator: 17 print(i.group())
re.search(pattern, str)
1 import re 2 3 """ 4 re.search(pattern, str) 5 返回满足匹配条件的第一个结果对象 6 """ 7 regex = r'[a-zA-Z]+' 8 s = 'Hello Python' 9 pattern = re.compile(regex) 10 11 obj = re.search(pattern, s) 12 13 if obj: 14 print(obj.group())
分组命名
1 import re 2 3 """ 4 flags 5 re.I 忽略大小写 6 re.M 多行模式,改变^和$的行为 7 re.S .可以匹配任意字符,包括换行符 8 """ 9 regex = r'<dd>.*?title="(?P<title>.*?)".*?</dd>' 10 s = '<dd><a href="#" title="Python中的正则">...</a></dd>' 11 pattern = re.compile(regex, re.S) 12 13 iterator = re.finditer(pattern, s) 14 15 for i in iterator: 16 print(i.group('title'))
或匹配
1 import re 2 3 """ 4 取消分组 5 (?:) 6 或匹配 7 long|short 8 """ 9 regex = r'www.(?:page|hopen).com' 10 s = 'www.hopen.com' 11 pattern = re.compile(regex) 12 13 iterator = re.finditer(pattern, s) 14 15 for i in iterator: 16 print(i.group())
贪婪匹配与惰性匹配
1 import re 2 3 4 def get_data(regex, s): 5 pattern = re.compile(regex) 6 obj = re.search(pattern, s) 7 if obj: 8 return obj.group() 9 10 11 # 贪婪匹配 12 regex_greedy = r'<.*>' 13 # 惰性匹配 14 regex_lazy = r'<.*?>' 15 content = '<a href="#">...</a>' 16 17 ret_1 = get_data(regex_greedy, content) 18 ret_2 = get_data(regex_lazy, content) 19 print(ret_1) # <a href="">...</a> 20 print(ret_2) # <a href="">
转载于:https://www.cnblogs.com/HopenZhang/p/9990309.html
Python中的正则相关推荐
- python中的正则匹配知识点
@author: fighter Python正则表达式知识点整理. 概述:在处理字符串时,经常会遇到查找符合某些复杂规则字符串的需求,正则表达式就是用于描述这些规则的工具. 首先,我们先掌握一下py ...
- python中的正则替换字符串函数re.sub
python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串 然后把它替换成自己想要的字符串的方法 re.sub 函数进行以正则表达式为基础的替换工作 下面是一段示例 ...
- python中使用正则模板匹配结果
正则配置处理类文件 util_tool.py #!/usr/bin/env python# -*- coding: utf-8 -*-"""Util Module for ...
- Java与Python中的正则匹配
Java实现 import java.util.regex.Matcher; import java.util.regex.Pattern;public class Test {public stat ...
- Python中的 正则匹配
正则匹配的基本格式 import re ret=re.match("正则表达式","要匹配的字符串") ret.group( ) 提取数据 匹配单个字符: . ...
- python re subn_python中的正则re.sub re.subn
这次给大家带来python中的正则re.sub & re.subn,使用python中正则re.sub & re.subn的注意事项有哪些,下面就是实战案例,一起来看一下. Pytho ...
- python中如何匹配正则中的空格
自己亲测了几种,要想在python中匹配正则的话,一般得是如下的写法: pattern1 = (\s) pattern2 = [\s] 而我以前以为的 pattern3 = (' ') 或者: pat ...
- python中search和match的区别_Python中正则表达式match()、search()函数及match()和search()的区别详解...
match()和search()都是python中的正则匹配函数,那这两个函数有何区别呢? match()函数只检测RE是不是在string的开始位置匹配, search()会扫描整个string查找 ...
- python中match的六种用法,python 正则函数match()和search()用法示例
这篇文章主要为大家详细介绍了python 正则函数match()和search()用法示例,具有一定的参考价值,可以用来参考一下. 对python正则表达式函数match()和search()的区别详 ...
最新文章
- mysql存储过程详解[转]
- Oracle 学习系列之一(表空间与表结构)
- Python3 定向爬虫之“抓取糗事百科图片”
- P4022-[CTSC2012]熟悉的文章【广义SAM,dp,单调队列】
- 无穷级数求和7个公式_大家看,用反证法判别级数敛散性(送微积分同学)!...
- 如何评价强gis与弱gis_什么是gis的简化解释
- OO_2019_第一单元总结——表达式求导
- 安装fitz报错_动态 - Fitz999的个人空间 - OSCHINA
- LeetCode 221. 最大正方形(动态规划)
- OpenCV(C++版)图像读取,创建,复制,保存,显示
- 《那些年啊,那些事——一个程序员的奋斗史》——53
- 17.异常(三)之 e.printStackTrace()介绍
- inux系统磁盘管理基础知识及总结
- paip.目录文件列表排序算法
- Lock接口和AQS原理与实现(Java并发编程的艺术整理)
- Windows 域之 LDAP与AD
- 2018.6清北学堂day3下午笔记
- 战矛在线Java_战矛在线职业选择攻略 最强职业推荐
- h5策划书_DIYH5|3.12世界睡眠日H5策划方案
- python程序设计论文_浅谈初中Python程序设计教学的实践与体会
热门文章
- 华为鸿蒙系统需要谷歌的服务器吗,华为P40或用鸿蒙系统?余承东:如果不能使用谷歌服务会考虑...
- java pashone_java – 如何使用onejar Maven插件在清单中设置附加的Class-Path条目?
- 没有java home_【Java安装】必须有JAVA_HOME变量吗
- 几何画板200个经典课件_几何画板Sketchpad Mac(数学教学软件)中文版
- postgresql存储过程输出参数
- python接口 同花顺_这是真的么 | 学会了用Python预测股票价格
- 杭州网络推广浅谈细节优化之栏目页如何优化?
- mysql从表中转移数据文件_MySQL 数据文件迁移找不到表
- python算法特征_python 3.x实现特征选择ReliefF算法
- 开发日记-20190618 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》