這個問題在這里已經有了答案: 在第一次匹配時停止的正則運算式 9 個答案 提取兩段文本之間的文本 4 個答案 昨天關門。
我想匹配字串之間<PDF>和</PDF>內部的所有模式:
import re
lines = """
hello
<PDF>
bla1
</PDF>
test
<PDF>
bla2
</PDF>
"""
matches = re.findall(r"<PDF>.*</PDF>", lines, re.DOTALL)
print(matches)
輸出:
['<PDF>\nbla1\n</PDF>\ntest\n<PDF>\nbla2\n</PDF>']
預期輸出:
['<PDF>\nbla1\n</PDF>', '<PDF>\nbla2\n</PDF>']
這里出了什么問題?如何確保</PDF>和之間沒有文本<PDF>匹配?
uj5u.com熱心網友回復:
*是貪婪的,所以它會盡可能地匹配。
*?在這種情況下使用。請參閱 Python 的模塊檔案re:
在限定符之后添加
?使其以非貪婪或最小方式執行匹配;將匹配盡可能少的字符。
matches = re.findall(r"<PDF>.*?</PDF>", lines, re.DOTALL)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479780.html
