首页 > 代码库 > python re正则表达式模块

python re正则表达式模块

模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等

复习一下基本的正则表达式吧

 .:匹配除了换行符以为的任意单个字符


 *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式


+:匹配位于+之前的一个或者多个字符


 |:匹配位于|之前或者之后的字符


 ^:匹配行首


 $:匹配行尾


 ?:匹配位于?之前的零个或者一个字符,不匹配多个字符


 \:表示 \ 之后的为转义字符


 []:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字


 ():将位于()之内的的内容当作一个整体


 {}:按{}中的次数进行匹配,100[0-9]{3}表示在100之后任意匹配一个3位数(100-999)


 

 python中以\开头的元字符:

 
转义字符含义
\b匹配单词头或者单词尾
\B和\b含义相反
\d匹配任何数字
\D和\d含义相反,匹配任何非数字
\s匹配任何空白字符
\S和\s含义相反,匹配任何非空白字符
\w匹配任何字母,数字,下划线
\W匹配任何非字母,数字,下划线

 

 

 

 

 

 

 

 

 

 

 

 

匹配的标志和含义

标志含义
re.I忽略大小写
re.L根据本地设置而更改\w,\W,\b,\B,\s,\S的匹配内容
re.M多行匹配模式
re.S使“.”元字符匹配换行符
re.U匹配Unicode字符
re.X忽略需要匹配模式中的空格,并且可以使用"#"号注释

 

 

 

 

 

 

 

文本内容(提取linux下的passwd文件)

1 man:x:6:12:man:/var/cache/man:/bin/nologin
View Code

 

re模块中有3个搜索函数,每个函数都接受3个参数(匹配模式,要匹配的字符串,进行匹配的标志),如果匹配到了就返回一个对象实例,么有就返会None.

findall():用于在字符串中查找符合正则表达式的字符串,并返回这些字符串的列表

search():搜索整个字符串,返回对象实例

match():只从第一个字符开始匹配,后面的不再匹配,返回对象实例

 1 lovelinux@LoveLinux:~/py/boke$ cat text  2 man:x:6:12:man:/var/cache/man:/bin/sh 3 lovelinux@LoveLinux:~/py/boke$ cat test.py 4 #/usr/bin/env python 5 #coding:utf-8 6 import re 7 with open(text,r) as txt: 8     f = txt.read() 9     print re.match(bin,f)10     print re.search(bin,f).end()    11 lovelinux@LoveLinux:~/py/boke$ python test.py 12 None13 3414 lovelinux@LoveLinux:~/py/boke$ vim test.py15 lovelinux@LoveLinux:~/py/boke$ python test.py 16 None17 <_sre.SRE_Match object at 0x7f12fc9f9ed0>
View Code

 

 返回是对象实例有2个方法,

start():返回记录匹配到字符的开始索引 

end():返回记录匹配到字符的结束索引

 1 lovelinux@LoveLinux:~/py/boke$ python test.py  2 None 3 31 4 34 5 lovelinux@LoveLinux:~/py/boke$ cat test.py  6 #/usr/bin/env python 7 #coding:utf-8 8 import re 9 with open(text,r) as txt:10     f = txt.read()11     print re.match(bin,f)12     print re.search(bin,f).start()13     print re.search(bin,f).end()
View Code