一、简介
正则表达式(regular expression)是一个特殊字符序列,描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串。
1.将匹配的子串替换或者从某个串中取出某个条件的子串,或者在指定文章中抓取特定的字符串等。
2.python处理正则表达式的模块是re模块,它是python语言中拥有全部正则表达式功能的模块。
3.正则表达式由一些普通字符和一些元字符组成。普通字符包括大小写的字母、数字和打印符号。
二、模式
1.模式字符串使用特殊的语法来表示一个正则表达式
字母和数字匹配他们自身;
多数字母和数字前加一个反斜杠(\)时会有特殊的含义;
特殊的标点符号,只有被转义以后才能匹配自身;
反斜杠本身需要反斜杠来转义;
2.r'\d'等价于‘\d’.由于正则表达式通常包含反斜杠等特殊字符,所以我们最好使用原始字符串来表示他们。
3.python正则表达式中,数量词默认都是贪婪的。他们会尽可能多的去匹配满足的字符。如果我们在后面加上问号“?”,就可以屏蔽贪婪模式,表示匹配尽可能少的字符。
三、正则表达式-特殊表达式的含义
.(点) 匹配除换行符之外的任意一个字符
\(反斜杠) 转义一个特殊的字符,使这个字符表示原来字面上的意思。如‘$’,表示原字符串$,而不是正则表达式中表示匹配行尾的意思。
预定义字符集
[ ]匹配括号中出现的任意单个字符
[]不匹配方括号中列出的单个字符
\d 匹配中任意一个数字,范围为[0-9]
\D 匹配任意一个非数字字符,等价于
\s 匹配任意一个空白字符;
\S匹配任意一个非空白字符;
\w 匹配一个字母或数字,字符范围:[A-Z a-z 0-9]
\W 非单词字符
数量字符集
- 匹配前一个字符0次1次或多次
+匹配前一个字符1次或多次
?匹配前一个字符0次或1次
{m}匹配前一个字符m次
{m,n}匹配前一个字符m到n次
边界匹配符
^ 托字符 匹配字符串开头。如果是多行则匹配每一行的开头。在[ ]中表示否定,如非字母[a-z A-Z]
$匹配字符串或一行的结尾。如果是多行则匹配每一行的结尾。
\A 仅匹配字符串的开始
\b 匹配一个单词的边界,也就是单词和空格间的位置
\B 表示匹配费单词边界。
\Z 匹配字符串结束。
逻辑匹配符
| |或匹配符,表达左右正则表达式任意匹配一个。如果左边的表达式匹配上了,不再匹配右边的表达式。该符号一般放在()中使用,如果没在圆括号中则它的范围是整个正则表达式
分组匹配
特殊匹配符
四、编译正则表达式基础
python通过re模块提供对正则表达式的支持。
网友评论