符合多行文字區塊的正規表示式
符合跨多行的文字可能會為正規表示式建構帶來挑戰。考慮以下範例文字:
some Varying TEXT DSJFKDAFJKDAFJDSAKFJADSFLKDLAFKDSAF [more of the above, ending with a newline] [yep, there is a variable number of lines here] (repeat the above a few hundred times)
目標是捕捉兩個組成部分:「some Varying TEXT」部分和所有後續大寫文字行,不包括空白行。
不正確的方法:
解決此問題的一些不正確方法包括:
解:
以下正規表示式正確捕捉所需的組件:
^(.+)\n((?:\n.+)+)
以下是其組件的細部分:
用法:
要在Python 中使用此正規表示式,您可以使用以下程式碼:
<code class="python">import re pattern = re.compile(r"^(.+)\n((?:\n.+)+)", re.MULTILINE)</code>
然後您可以使用match() 方法在字串中尋找匹配項:
<code class="python">match = pattern.match(text) if match: text1 = match.group(1) text2 = match.group(2)</code>
以上是如何使用正規表示式捕獲多行文字區塊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!