正則表達式匹配多個字符操作示例
注意:
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'>