python正则表达式常用符号及re方法

来源:互联网 发布:淘宝天天特价男装 编辑:程序博客网 时间:2024/04/25 11:44

使用正则表达式首先得导入re模块


字符 意义 \d 0-9的任何数字 \D 除了0-9的任何字符 \w 任何字母、数字或下划线字符 \W 出字母、数字和下划线意外的任何字符 \s 空格、制表符或换行符,可以认为是空白的这类符号 \S 除空格、制表符或换行符的任何字符 r 忽略转义字符,如想搜索’\d’的时候,直接输入’\d’则认为是数字,r’\d’就OK了 | 类似于‘或’,如’a|b’可以匹配’a’或’b’ ? 可选的,如’a(b)?c’,可以匹配abc或则ac * 可以匹配n>=0次,如’a*b’可以匹配’b’,’aab’ + 可以匹配n>=1次,如’a+b’可以匹配’ab’,’aab’ (想匹配的字符){n} 可以匹配n次,如’(a){3}’可以匹配’aaa’,或者’(a){3,5}’可以匹配(aaa)或者(aaaa)或者(aaaaa) ? 非贪婪匹配,如’(a){3,5}?’只匹配(aaa) ^ 两种情况,在’[^abc]’这样的括号中,表示除了’abc’、’acb’、’bac’等外的;’^abc’表示以’abc’开始的,如’^a’,可以匹配’abc’,但是不匹配’bac’ $ 结束符号,与^的开始符号对应,如’a$’表示以a结尾的,如’zxca’ . 除了换行外的所有字符

方法:
re.compile
将正则表达式编译成一个正则表达式对象。

xxx = re.compile('abc') 

re.search
查找传入的正则表达式对象,但是只返回第一次出现的匹配文本。

>>>xxx.search('abcd,efg,abc')abc

re.findall
与search类似,但是返回所有匹配到的文本。
且如果调用在一个没有分组的正则表达式上,如\d\d,则返回一个匹配到的字符串的列表,如[‘12’,’21’];
如果是在一个有分组的正则表达式上,如(\d)(\d),则返回一个串元祖的列表,每个分组对应一个字符串,如[(‘1’,’2’),(‘2’,’1’)

>>>xxx.findall('abcd,efg,abc')['abc','abc']

re.I或者re.IGNORECASE
不区分字母大小写

>>>xxx = re.compile('abc',re.I)>>>xxx.search('AbCdef')AbC

re.sub(替换前的内容,替换后的内容,要操作的内容,替换个数)
类似于word中的替换功能

>>>re.sub(r'abc', 'efg', 'abcdefg') efgdefg

re.VERBOSE
忽略空白符及注释,可以写出方便阅读的正则表达式
原:

>>>xxx = re.compile(((\d|\d\))?(\s|\.))

后:

>>>xxx = re.compile('''(>>> (\d|\d\))?            #数字或者数字.>>> (\s|\.)               #空格、制表符或换行符>>> )''',re.VERBOSE)

join()和split()
插入和分割

>>>xxx = ['a''b''c']>>>print xxx['abc']>>>print ' '.join(xxx)   #在每个字符间插入空格,此时返回的类型是字符串abc                      #而不是列表>>>print 'a,b,c'.split(',')#把一个字符串按照逗号隔开['a', 'b', 'c']            #此时返回一个列表

注:参考了《PYTHON编程快速上手 让繁琐工作自动化》第7章

0 0