正则表达式

正则表达式的符号与方法

>>常用符号:

 >>.:匹配任意字符,换行符\n除外

>>> import re
>>> a = 'abc123'
>>> b = re.findall('a.',a)
>>> print(b)
['ab']
>>> b = re.findall('a..',a)
>>> print(b)
['abc']

 >>*:匹配前一个字符0次或无限次

>>> import re
>>> a = 'abca123'
>>> b = re.findall('a*',a)
>>> print(b)
['a', '', '', 'a', '', '', '', '']

 >>?:匹配前一个字符0次或1次

>>> import re
>>> a = 'abca123'
>>> b = re.findall('a?',a)
>>> print(b)
['a', '', '', 'a', '', '', '', '']

 >>.*:贪心算法

>>> import re
>>> a = 'fdsfsdafasfaxxaxxfdsafsdfasxxbxxfdsafasfsaxxcxxdfafdsa'
>>> b = re.findall('xx.*xx',a)
>>> print(b)
['xxaxxfdsafsdfasxxbxxfdsafasfsaxxcxx']

 >>.*?:非贪心算法

>>> import re
>>> a = 'fdsfsdafasfaxxaxxfdsafsdfasxxbxxfdsafasfsaxxcxxdfafdsa'
>>> b = re.findall('xx.*?xx',a)
>>> print(b)
['xxaxx', 'xxbxx', 'xxcxx']

 >>():括号内的数据作为结果返回

>>> import re
>>> a = 'fdsfsdafasfaxxaxxfdsafsdfasxxbxxfdsafasfsaxxcxxdfafdsa'
>>> b = re.findall('xx(.*?)xx',a)
>>> print(b)
['a', 'b', 'c']

 >>\d+:匹配数字

>>> import re
>>> a = 'ab312321ab21312'
>>> b = re.findall('\d+',a)
>>> print(b)
['312321', '21312']

>>常用方法

 >>findall:匹配所有符合规律的内容,返回包含结果的列表

 >>search:匹配并提取第一个符合规律的内容,返回一个对象

>>> import re
>>> a = 'abca123'
>>> b = re.search('a?',a).group(0)
>>> print(b)
a

 >>Sub:替换符合规律的内容,返回替换后的值

>>> import re
>>> a = 'abca123'
>>> b = re.sub('.*?123','0123',a)
>>> print(b)
0123

 

posted @ 2016-10-31 15:59  矮人er  阅读(185)  评论(0编辑  收藏  举报