python3 正则表达式re模块

正则表达式的功能:字符串的模糊匹配查询import re元字符
. ---->匹配除换行符意外的任意字符
^ ---->匹配行首位置
$ ---->匹配行尾位置

关于重复的元字符
* ---->(0,无穷)
+ ---->(1,无穷)
? ---->(0,1)
{} --->指定次数

转义符 \1、反斜杠后边跟元字符去除特殊功能,比如\.2、反斜杠后边跟普通字符实现特殊功能,比如\d
\d  匹配任何十进制数;      它相当于类 [0-9]。
\D  匹配任何非数字字符;    它相当于类 [^0-9]。
\s  匹配任何空白字符;      它相当于类 [ \t\n\r\f\v]。
\S  匹配任何非空白字符;    它相当于类 [^ \t\n\r\f\v]。
\w  匹配任何字母数字字符;   它相当于类 [a-zA-Z0-9_],也可以匹配汉字。
\W  匹配任何非字母数字字符; 它相当于类 [^a-zA-Z0-9_]
\b  匹配一个特殊字符边界,比如空格 ,&,#等
\b 的应用
ret=re.findall(r‘I\b‘,‘I am LIST‘)
print(ret)#[‘I‘]
正则应用
res = ‘\\‘  #\是转义符,前面再加个\
print(res)  #\

res = ‘\\n‘
print(res) #\n

ret=re.findall("(李\w{1,2})","李杰,李刚,王超,占山,李连英")  # 匹配出所有符合条件的元素
print(ret)
# ret=re.findall(‘c\l‘,‘abc\le‘)
# print(ret)#报错

# ret=re.findall(‘c\\l‘,‘abc\le‘)
# print(ret)#报错

ret=re.findall(‘c\\\\l‘,‘abc\le‘)
print(ret)#[‘c\\l‘]

ret=re.findall(r‘c\\l‘,‘abc\le‘)
print(ret)#[‘c\\l‘]

# \b是特殊符号所以,‘abc\be‘前面需要加r
ret=re.findall(r‘c\\b‘,r‘abc\be‘)
print(ret)#[‘c\\b‘]
分组 ()
m = re.findall(r‘(ad)+‘, ‘add‘)
print(m)
字符集[]
#[abc] 匹配a或b或c
ret = re.findall(‘a[bc]d‘, ‘acd‘)
print(ret)  # [‘acd‘]

ret = re.findall(‘[a-z]‘, ‘acd‘)
print(ret)  # [‘a‘, ‘c‘, ‘d‘]

ret = re.findall(‘[.*+]‘, ‘a.cd+‘)
print(ret)  # [‘.‘, ‘+‘]
在字符集里有功能的符号: - ^ \
ret = re.findall(‘[1-9]‘, ‘45dha3‘)
print(ret)  # [‘4‘, ‘5‘, ‘3‘]

ret = re.findall(‘[^ab]‘, ‘45bdha3‘)    # ^ 非
print(ret)  # [‘4‘, ‘5‘, ‘d‘, ‘h‘, ‘3‘]

ret = re.findall(‘[\d]‘, ‘45bdha3‘)
print(ret)  # [‘4‘, ‘5‘, ‘3‘]
re模块下的常用方法
import re

ret = re.findall(‘a‘, ‘alvin yuan‘)  # 返回所有满足匹配条件的结果,放在列表里
print(ret)

ret = re.search(‘a‘, ‘alvin yuan‘).group()
print(ret)
print(type(ret))
# 函数会在字符串内查找模式匹配,直到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
# 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。

ret = re.match(‘a‘, ‘abc‘).group()  # 同search,不过尽在字符串开始处进行匹配
print(ret)

.search分段

import re
# ret = re.search(r‘-blog-aticles-(20[01]\d)-(\d+)‘,‘-blog-aticles-2015-04‘)
ret = re.search(r‘-blog-aticles-(?P<year>20[01]\d)-(?P<month>\d+)‘,‘-blog-aticles-2015-04‘)
print(ret.group())
print(ret.group(‘year‘))
print(ret.group(‘month‘))
findall的优先级查询
import re

ret = re.findall(‘www.(baidu|oldboy).com‘, ‘www.oldboy.com‘)
print(ret)  # [‘oldboy‘]     这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可

ret = re.findall(‘www.(?:baidu|oldboy).com‘, ‘www.oldboy.com‘)  # ?:取消组优先
print(ret)  # [‘www.oldboy.com‘]
时间: 2024-08-10 00:04:17

python3 正则表达式re模块的相关文章

python3 正则表达式 re模块之辣眼睛 计算器

额...学到几个常用模块了,也要其中考试了,每天晚上敲一点,敲得脑壳疼,不过又想到好一点的办法了,有时间再改吧. 此非吾所欲也,实属无奈也....复习之路漫漫,吾将到书上求索,在此不多逗留,我挥一挥衣袖,留下一段惨不忍睹的代码,且不带走一片云彩. 1 #!usr/bin/env/ python 2 # -*- coding:utf-8 -*- 3 # Author: XiaoFeng 4 import re 5 6 7 a = '1 - 2 * ( ( 6 0 -3 0 +(-40/5) * (

详解 Python3 正则表达式(二)

上一篇:详解 Python3 正则表达式(一) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些批注和修改 ^_^ 使用正则表达式 现在我们开始来写一些简单的正则表达式吧.Python 通过 re 模块为正则表达式引擎提供一个接口,同时允许你将正则表达式编译成模式对象,并用它们来进行匹配. 批注:re 模块是使用 C 语言编写,所以效率比你用普通的字符串方法要高得多:将正则表达式进行编译(compile)也是为了进一步提高效率

详解 Python3 正则表达式(一)

本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些批注和修改 ^_^ 正则表达式介绍 正则表达式(Regular expressions 也称为 REs,或 regexes 或 regex patterns)本质是一个微小的且高度专业化的编程语言.它被嵌入到 Python 中,并通过 re 模块提供给程序员使用.使用正则表达式,你需要指定一些规则来描述那些你希望匹配的字符串集合.这些字符串集合可能包含英语句子.e-mail 地址

详解 Python3 正则表达式(三)

上一篇:详解 Python3 正则表达式(二) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些批注和修改 ^_^ 模块级别的函数 使用正则表达式也并非一定要创建模式对象,然后调用它的匹配方法.因为,re 模块同时还提供了一些全局函数,例如 match(),search(),findall(),sub() 等等.这些函数的第一个参数是正则表达式字符串,其他参数跟模式对象同名方法采用一样的参数:返回值也一样,同样是返回 None

py12 正则表达式 re模块

Python3 正则表达式 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python 语言拥有全部的正则表达式功能. re模块源码 # -------------------------------------------------------------------- # public interface def match(pattern, string, flags=0): """Try to apply th

Python3中正则模块re.compile、re.match及re.search

本文实例讲述了Python3中正则模块re.compile.re.match及re.search函数用法.分享给大家供大家参考,具体如下: re模块 re.compile.re.match. re.search re 模块官方说明文档 正则匹配的时候,第一个字符是 r,表示 raw string 原生字符,意在声明字符串中间的特殊字符不用转义. 比如表示 '\n',可以写 r'\n',或者不适用原生字符 '\n'. 推荐使用 re.match re.compile() 函数 编译正则表达式模式,

Python3.x标准模块库目录

Python3.x标准模块库目录 文本 1. string:通用字符串操作 2. re:正则表达式操作 3. difflib:差异计算工具 4. textwrap:文本填充 5. unicodedata:Unicode字符数据库 6. stringprep:互联网字符串准备工具 7. readline:GNU按行读取接口 8. rlcompleter:GNU按行读取的实现函数 二进制数据 9. struct:将字节解析为打包的二进制数据 10. codecs:注册表与基类的编解码器 数据类型 1

python基础系列教程——Python3.x标准模块库目录

python基础系列教程——Python3.x标准模块库目录 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 stringprep:互联网字符串准备工具 readline:GNU按行读取接口 rlcompleter:GNU按行读取的实现函数 二进制数据 struct:将字节解析为打包的二进制数据 codecs:注册表与基类的编解码器 数据类型 datetime:基于日期与时间工具

Python3中正则模块re.compile、re.match及re.search函数用法详解

Python3中正则模块re.compile.re.match及re.search函数用法 re模块 re.compile.re.match. re.search 正则匹配的时候,第一个字符是 r,表示 raw string 原生字符,意在声明字符串中间的特殊字符不用转义. 比如表示 ‘\n',可以写 r'\n',或者不适用原生字符 ‘\n'. 推荐使用 re.match re.compile() 函数 编译正则表达式模式,返回一个对象.可以把常用的正则表达式编译成正则表达式对象,方便后续调用及