正则表达式
Posted 矮人er
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式相关的知识,希望对你有一定的参考价值。
正则表达式的符号与方法
>>常用符号:
>>.:匹配任意字符,换行符\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
以上是关于正则表达式的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性