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

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


字符意义
\d0-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章

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值