正则表达式
正则表达式的符号与方法
>>常用符号:
>>.:匹配任意字符,换行符\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