我需要以特定數量的標籤分割字串 (<li>, <lu> ...)
。我想出了正規表示式
pattern = <li>|<ul>|<ol>|<li>|<dl>|<dt>|<dd>|<h1>|<dt>|<dd>|<h1>|< h2>| <h3>|<h4>|<h5>|<h6>
與re.split
test_string = '<p> Some text some text some text. </p> <p> Another text another text </p>. <li> some list </li>. <ul> another list </ul>' res = re.search(test_string, pattern) -> `['<p> Some text some text some text. </p> <p> Another text another text </p>. ', ' some list </li>. ', ' another list </ul>']`###但我想捕獲開始和結束標籤並將標籤保留在分割文字中。類似的東西###
['<p> Some text some text some text. </p> <p> Another text another text </p>. ', '<li> some list </li>. ', '<ul>another list </ul>']`###
回答您的具體問題:
並且匹配而不是拆分。
\1
指的是開始標記中捕獲的內容。類似:
但是,在大多數真實情況下,這不足以處理 HTML,您應該考慮 DOM 解析器。