Python RE庫的貪婪匹配和最小匹配
阿新 • • 發佈:2018-11-25
>>> 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' >>>