Python RE庫的貪婪匹配和最小匹配

dream_網路安全發表於2018-11-23

在這裡插入圖片描述在這裡插入圖片描述

>>> import re
>>> match = re.search(r'PY.*N', 'PYANBNCNDN')
>>> match.group(0)
'PYANBNCNDN'
>>>

其中滿足條件的有:

1. PYAN
2. PYANBN
3. PYANBNCN
4. PYANBNCNDN

結果輸出了一個最長的:PYANBNCNDN

叫做:貪婪匹配!
在這裡插入圖片描述在這裡插入圖片描述

>>> import re
>>> match = re.search(r'PY.*N', 'PYANBNCNDN')
>>> match.group(0)
'PYANBNCNDN'
>>> match = re.search(r'PY.*N', 'PYANBNCND')
>>> match.group(0)
'PYANBNCN'
>>> match = re.search(r'PY.*N', 'PYABNCND')
>>> match.group(0)
'PYABNCN'
>>> match = re.search(r'PY.*N', 'PYABHDHDH')
>>>

最上面的那一個就是沒有滿足條件的!

那麼,如何輸出最小的匹配呢?
在這裡插入圖片描述

match = re.search(r'PY.*?N', 'PYANBNCNDN')

在這裡插入圖片描述

>>> import re
>>> m = re.search(r'PY.*N', 'PYDFSNDFNJNCNIS')
>>> m.group(0)
'PYDFSNDFNJNCN'
>>> m = re.search(r'PY.*?N', 'PYDFSNDFNJNCNIS')
>>> m.group(0)
'PYDFSN'
>>>

在這裡插入圖片描述
在這裡插入圖片描述

課程地址:https://www.icourse163.org/learn/BIT-1001870001?tid=1003245012#/learn/content?type=detail&id=1004574448&cid=1005754054

相關文章