Je dois diviser une chaîne par un nombre spécifique de balises (<li>, <lu> ...)
. J'ai compris l'expression régulière
pattern = <li>|<ul>|<ol>|<li>|<dl>|<dt>|<dd>|<h1>|<h2>| <h3>|<h4>|<h5>|<h6>
和 re.split
En gros, il fait le travail
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>']`
Mais je souhaite capturer les balises d'ouverture et de fermeture et conserver les balises dans le texte divisé. Quelque chose de similaire
['<p> Some text some text some text. </p> <p> Another text another text </p>. ', '<li> some list </li>. ', '<ul>another list </ul>']`
Pour répondre à vos questions spécifiques :
Et faites correspondre au lieu de diviser.
1
fait référence à ce qui est capturé dans la balise d'ouverture.Semblable à :
Cependant, dans la plupart des cas réels, cela ne suffit pas pour gérer le HTML et vous devriez envisager un analyseur DOM.