" doit être "",J'ai du code HTML qui contient des espaces dans les balises et je souhaite le rendre à nouveau valide - par exemple : J'ai du code HTML qui est gâché par des espaces dans les balises et je souhaite le rendre à nouveau valide - par exemple : doit être converti en HTML valide et, une fois rendu, devrait produire : Tout texte précédé/suivi d'espaces dans Je réalise que cela peut nécessiter plusieurs expressions régulières, ce qui est très bien J'ai quelques éléments : Par exemple, je pourrais adopter une approche drastique, mais cela briserait également le code dans la partie texte de l'étiquette, et non le nom de l'étiquette lui-même< div class='test' >1 > 0 est < b >true b> bananes&Lt / div >≪/pre>
>
ou >< doit rester inchangé ; par exemple, ;1 > 0
doit être conservé au lieu d'être compressé en 1>0
Cela corrigera partiellement b> div >
;/b>
Il n'existe aucun moyen raisonnable de sauvegarder un document aussi corrompu que celui que vous avez publié, mais en supposant que vous mettiez
>
和类似字符替换为其相关实体,例如:> ;
dans le texte, vous pouvez mettre le document que vous souhaitez accepter dans une bibliothèque appropriée telle queDomDocumentqui se chargera de le repos.Sortie :
Cette regex fonctionne également :
Il divise la partie valide de la balise HTML en quatre parties et remplace les parties restantes (espaces) par celles-ci.
Démo Regex101
/(]*S)s*(>)/g
( - Capture équerre d'ouverture (section 1)
s*
- s'adapte à n'importe quel espace(/?)
- Capture des barres obliques inverses facultatives (Partie 2)s*
- correspond à n'importe quel espace après une barre oblique inverse([^]*S)
- Capturez le contenu dans les balises sans espaces de fin (section 3)s*
- Correspond aux espaces après le contenu et avant le crochet droit(>)
- Capturer l'équerre droite (section 4)