Python :正则表达式

非打印字符

\cx匹配x指明的控制字符;x必须为AZ或az之一,否则c视为‘c’字符
\f匹配一个换页符, 等价 \x0c 或 、cL
\n匹配一个换行符 , 等价 \x0a 或 \cJ
\f匹配一个回车符, 等价 \x0d 或 \cM
\s匹配空白字符, 包括空格、制表符、换页符等, 等价 [\f\n\r\t\v]
\S匹配非空白字符, 等价 [^\f\n\r\t\v]
\t匹配一个制表符, 等价 \x09 或 \cI
\b匹配一个单词的边界
\B匹配出现在一个单词中间的模式; 如:\Bthe 匹配任何包含但不以the作为起始的字符串
\d表示匹配任何十进制数,[0-9]
\D表示匹配任何非十进制数,[^0-9]
\w表示全部字母和数字的字符集,[A-Za-z0-9]
\W表示全部非字母和非数字的字符集,[^A-Za-z0-9]
\v匹配一个垂直制表符 ,等价\x0b 或 \cK;

在打开文件的时候open(r’c:…’);加r和不加’'r是有区别的;'r’是防止字符转义的

特殊字符

^ 或 \A匹配输入字符串的 开始 位置; 在中括号中,表示 非
$ 或 \Z匹配输入字符串的 结尾 位置
.匹配除换行符 ‘\n’ 之外的任何 字符
匹配前面的 子表达式 零次 或 一次, 0~1次
*匹配前面的 子表达式 零次 或 多次, ≥0次; Kleene闭包
+匹配前面的 子表达式 一次 或 多次, ≥1次; 正闭包操作
( )标记一个子表达式的开始和结束位置
[ ]标记一个中括号表达式; 匹配某些特定的字符,只适用于 单 字符
{ }标记限定符表达式的开始;
表达式内:一个值{N};匹配表达式N次;如 ab{2}c表示abbc
表达式内:一对值{M,N}; 匹配表达式M~N次
|
\转义符

属性信息

flags:正则表达式的匹配方式

re.I , re.IGNORECASE不区分大小写的匹配
忽略正则表达式的大小写,[A-Z]能够匹配到小写字符
re.L , re.LOCALE根据所使用的本地语言环境通过\w, \W, \b, \B, \s, \S实现匹配
re.M , re.MULTILINE^和$分别匹配目标字符串中行的起始和结束,而不是严格匹配整个字符串本身的起点和结尾
正则表达式中的^操作能够将给定字符串的每行当做匹配开始
re.S , re.DOTTALL“.”(点号)通过匹配除了\n之外的所有单个字符;该标记表示“."能够匹配全部字符
正则表达式中的.操作能够匹配所有字符,默认匹配除换行外的所有字符
re.X , re.VERBOSE通过反斜线转义后,所有空格加上#(以及在该行中所有后续文字)的内容都被忽略
re.U匹配Unicode字符

re模块

方法内容
compile(pattern, flags=0)使用任何可选的标记来编译正则表达式的模式,然后返回一个正则表达式对象;
complie(source, filename, mode[, flags[, don_inherit]]) ;
source: 字符串或者AST对象;
filename: 代码文件名称,如果不是从文件读取代码,则传递一些可辨识的值;
mode: exce、 eval、 single
将source编译为代码或者AST(Abstract Syntax Tree)对象。代码对象能够通过exce语句来执行或者eval()进行求值;
pattern对象不能直接实例化,必须通过compile();
match(pattern, string, flags=0)尝试使用带有可选的标记的正则表达式的模式来匹配字符串。
如果匹配成功就返回匹配对象;失败就返回None;从字符串的首字符开始匹配;
pattern: 正则表达式;
string:要匹配的字符;
flags: 标志位
search(pattern, string, flags=0)使用可选标记搜索字符串中第一次出现的正则表达式模式。如果成功,返回匹配对象;如果失败,就返回None; 不但搜索在字符串的第一次出现的位置,而且会严格的对字符串从左到右搜索
pattern: 正则表达式的字符串或原生字符串表示;
string: 带匹配的字符串
flags: 正则表达式使用时的控制标记
findall(pattern,string[, flages])查找字符串中所有(非重复)出现的正则表达式模式,并返回一个匹配的 列表;
pattern:
正则表达式内有多个括号 返回元祖(1)元祖中字符串的个数与括号对数相同,(2)字符串内容与每个括号内的正则表达式相对应,(3)排放顺序是按照括号出现的顺序;
一个括号: 返回列表,元素为字符串,字符串内容与 括号中 正则表达式相对应(非整个正则表达式对应);
不带括号: 返回列表,元素为字符串,字符串内容与正则表达式相对应(整个正则表达式对应)
finditer(pattern,string[, flages])与findall()函数相同,但返回的是一个 迭代器
对于每一次匹配,迭代器都返回一个匹配对象
split(pattern, string, maxsplit=0)根据正则表达式的模式分隔符,split函数将字符串分割为 列表 ,然后返回成功匹配的列表,分割最多操作maxsplit次(默认分割所有匹配成功的位置)
sub(pattern, repl, string, count=0)使用repl替换所有的正则表达式的模式在字符串中出现的位置,除非定义count,否则将替换所有出现的位置(另见 subn( )函数,该函数返回替换操作的数目);
repl,就是replacement,被替换,的字符串的意思;repl可以是字符串,也可以是函数;
string,即表示要被处理,要被替换的那个string字符串
purge( )清除隐式编译的正则表达式模式
group(num=0)返回整个匹配对象 或者 编号为num的特定子组; 以str形式返回对象中match的元素
groups(default=None)返回一个包含所有匹配子组的元祖(如果没有匹配成功,返回一个空元祖)
groupdict(default=None)返回一个包含所有匹配的命名子组的字典,所有的子组名称作为字典的键(如果没有成功匹配,则返回一个空字典)
start()返回开始位置
end()返回结束位置
span()以tuple形式返回范围

使用

raw string类型(原生字符串类型),是不包含转义符的字符串,表示为: r'text'; 例如:
邮政编码:r‘[1-9]\d{5}’
国内电话号码:r'\d{3}-\d{8}|\d{4}-\d{7}'

import re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值