用於提取兩個字串之間的匹配的正則表達式
給定一個包含由特定開始和結束標記括起來的多行字串的大型日誌文件,目標是僅提取並列印最短的此類字串。但是,開始標記在文件中的其他位置使用,因此簡單的正規表示式是不夠的。
為了解決這個問題,我們可以使用以下正規表示式:
(start((?!start).)*?end)
此正規表示式符合字串:
使用Python 的re.findall 方法帶有單行修飾符(re.S),我們可以從輸入檔中檢索所有此類字串:
<code class="python">import re text = """ start spam start rubbish start wait for it... profit! here end start garbage start second match win. end """ matches = re.findall('(start((?!start).)*?end)', text, re.S) print(matches)</code>
這將輸出所需的結果:
['start wait for it... profit! here end', 'start second match win. end']
以上是如何使用正規表示式提取日誌中兩個字串之間的匹配項?的詳細內容。更多資訊請關注PHP中文網其他相關文章!