您的位置:首页 > 编程语言 > Python开发

Python正则表达式

2016-08-24 14:04 155 查看

什么是正则

正则是一种对字符串进行特定匹配的模式

正则表达式使用单个字符串组合来描述和匹配一系列符合某个句法规则的字符串

简单理解,就是对字符串的检索匹配和处理

Python通过re模块提供对正则表达式的支持

先将正则表达式的字符串形式编译为Pattern实例;

使用Pattern实例处理文本并获得匹配结果;

使用实例获得信息,进行其他的操作

常用的元字符

代码说明
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线或汉字
\s匹配任意的空白符
\d匹配数字
\b匹配单词的开始或结束
^匹配字符串的开始
$匹配字符串的结束
[]匹配字符集[a-z]、[abc],元字符在字符集中不起作用

常用的限定符

代码/语法说明
*重复零次或更多
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

分枝条件 |

常用的反义代码

代码/语法说明
\W匹配任意不是字母,数字,下划线,汉字的字符
\S匹配任意不是空白符的字符
\D匹配任意非数字的字符
\B匹配不是单词开头或结束的位置
[^x]匹配除了x以外的任意字符
[^aeiou]匹配除了aeiou这几个字母以外的任意字符

分组 ()

后向引用 \1 \2

Python re对象

import re

方法/属性作用
match(pattern, string, flags=0)RE是否在字符串刚开始的位置匹配
search(pattern, string, flags=0)扫描字符串,找到这个RE匹配的位置
findall(pattern, string, flags=0)找到RE匹配的所有子串,并把它们做一个列表返回
finditer(pattern, string, flags=0)找到RE匹配的所有子串,并把它们做一个迭代器返回,next()获得元素
sub(pattern, repl, string, count=0, flags=0)找到RE匹配的所有子串,并把它们做一个替换
subn(pattern, repl, string, count=0, flags=0)找到RE匹配的所有子串,并把它们做一个替换并返回总替换多少次
split(pattern, string, maxsplit=0, flags=0)找到RE匹配切割符,对匹配的数据进行切割
如果没有匹配到的话,match() 和 search()将返回None

如果成功的话,就会返回一个’MatchObject’实例

MatchObject实例的方法/属性

方法/属性说明
group()返回被RE匹配的字符串
start()返回匹配开始的位置
end()返回匹配结束的位置
span()返回一个元祖包含匹配(开始,结束)

预编译表达式 re.compile(pattern, flags=0)

编译正则表达式,如果正则表达式的字符串本身不合法,会报错

用编译后的正则表达式去匹配字符串。

编译一个正则表达式,返回一个 pattern 对象,由于该对象已经包含了正则表达式,所以调用方法时不用再给出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息