python之正则表达式:re模块

一.正则表达式中常用的字符含义

1、普通字符和11个元字符:

常用字符划分 匹配范围 示例数据
匹配的正则表达式 目标匹配的字符串
普通字符 匹配自身 abc abc
. 匹配任意除换行符"\n"外的字符(在DOTALL模式中也能匹配换行符 a.c abc
\ 转义字符,使后一个字符改变原来的意思 a\.c;a\\c a.c;a\c
* 匹配前一个字符0或多次 abc* ab;abccc
.+ 匹配前一个字符1次或无限次 abc+ abc;abccc
? 匹配一个字符0次或1次 abc? ab;abc
^ 匹配字符串开头。在多行模式中匹配每一行的开头 ^abc abc
$ 匹配字符串末尾,在多行模式中匹配每一行的末尾 abc$ abc
| 或。匹配|左右表达式任意一个,从左到右匹配,如果|没有包括在()中,则它的范围是整个正则表达式 abc|def abcdef
{} {m}匹配前一个字符m次,{m,n}匹配前一个字符m至n次,若省略n,则匹配m至无限次 ab{1,2}c abcabbc
[]  字符集。对应的位置可以是字符集中任意字符。字符集中的字符可以逐个列出,也可以给出范围,如[abc]或[a-c]。[^abc]表示取反,即非abc。
所有特殊字符在字符集中都失去其原有的特殊含义。用\反斜杠转义恢复特殊字符的特殊含义。
a[bcd]e abe
ace
ade
() 被括起来的表达式将作为分组,从表达式左边开始没遇到一个分组的左括号“(”,编号+1.
分组表达式作为一个整体,可以后接数量词。表达式中的|仅在该组中有效。
(abc){2}a(123|456)c abcabca456c

强调一下反斜杠\的作用:

1.反斜杠后边跟元字符去除特殊功能;(即将特殊字符转义成普通字符)

2.反斜杠后边跟普通字符实现特殊功能;(即预定义字符)

3.引用序号对应的字组所匹配的字符串。

二、预定义字符集(可以写在字符集[...]中) 

预定义字符集划分 匹配范围 示例数据
匹配的正则表达式 目标匹配的字符串
\d 数字:[0-9] a\bc a1c
\D 非数字:[^\d] a\Dc abc
\s 匹配任何空白字符:[<空格>\t\r\n\f\v] a\sc a c
\S 非空白字符:[^\s] a\Sc abc
\w 匹配包括下划线在内的任何字字符:[A-Za-z0-9_] a\wc abc
\W 匹配非字母字符,即匹配特殊字符 a\Wc a c
\A 仅匹配字符串开头,同^ \Aabc abc
\Z 仅匹配字符串结尾,同$ abc\Z abc
\b 匹配\w和\W之间,即匹配单词边界匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 \babc\b 空格abc空格
a\b!bc a!bc
\B [^\b] a\Bbc abc

三、特殊分组用法:

特殊分组划分 匹配范围 示例数据
匹配的正则表达式 目标匹配的字符串
(?P<name>) 分组,除了原有的编号外再指定一个额外的别名 (?P<id>abc){2} abcabc
(?P=name) 引用别名为<name>的分组匹配到字符串 (?P<id>\d)abc(?P=id) 1abc15abc5
\<number> 引用编号为<number>的分组匹配到字符串 (\d)abc\1 1abc15abc5

猜你喜欢

转载自blog.csdn.net/ak739105231/article/details/84488446
今日推荐