正则表达式匹配多个字符操作示例
注意:
match只能判断以什么开头,也就是说如果前面有一部分匹配,那么正确的也能匹配出来,后面不匹配的就舍去了。
匹配多个字符 | |
---|---|
* | 匹配一个字符出现0次或无限次 ,即前面的字符可有可无 |
+ | 匹配一个字符出现了一次或无限次,即至少出现一次 |
? | 匹配一个字符出现了1次或者0次,即要么有一次,要么没有 |
{m} | 匹配前一个字出现了m次 |
{m,n} | 匹配前一个字符出现了(m,n)这个集合中的任意一次 |
>>> import re
>>> html_content = '''aaa
... bbb
... ccc'''
>>> re.match(r'.*',html_content)
<re.Match object; span=(0, 3), match='aaa'>
换行后面的内容无法匹配,如果需要匹配换行后的,需要转义
如下:
>>> re.match(r'.*',html_content,re.S)
<re.Match object; span=(0, 11), match='aaa\nbbb\nccc'>
>>> re.match(r'a+',html_content,re.S)
<re.Match object; span=(0, 3), match='aaa'>
>>> re.match(r'a?',html_content,re.S)
<re.Match object; span=(0, 1), match='a'>
匹配\d 出现3次,接着匹配- 出现0次或1次,接着\d 出现8次
>>> re.match(r'\d{3}-?\d{8}','012-12345667')
<re.Match object; span=(0, 12), match='012-12345667'>
>>> re.match(r'\d{3}','12345//')
<re.Match object; span=(0, 3), match='123'>
>>> re.match(r'\d{3,5}','23//')
>>>> re.match(r'\d{3,5}','233323')
<re.Match object; span=(0, 5), match='23332'>