正則表達式匹配多個字符操作示例

正則表達式匹配多個字符操作示例

注意:
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'>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章