Quelqu'un peut-il regarder mon expression régulière en javascript et suggérer une bonne?
J'essaie de sélectionner des paires d'attributs (nom / valeur) dans une chaîne HTML / XML comme suit?
<unknowncustom:tag attrib1="XX" XX"" attrib2="YY" YY"" attrib3=ZZ""">/unknowncustom:tag>
SOME TEXT that is not part of any tag and should not be selected, name="XX", y="ee";
<custom:tag attrib1="XX" XX"" attrib2="YY" YY"" attrib3=ZZ""">/custom:tag>
J'ai trouvé de nombreuses solutions mais aucune ne semble infaillible (y compris celle-ci Expression régulière pour extraire les attributs de balise)
Mon expression rationnelle actuelle sélectionne la première paire d'attributs, mais ne parvient pas à déterminer comment la faire sélectionner tous les attributs correspondants. Voici l'expression régulière:
/<w*:?w*s+(?:((w*)s*=s*((?:(?:"[^"]*")|(?:"[^"]*")|[^>s]+))))[^>]*>/gim
Merci
Réponses:
1 pour la réponse № 1Essayons:
/(w+)s*=s*(([""])(.*?)3|([^>s]*)(?=s|/>))(?=[^<]*>)/g
Regex n'est pas idéal pour cela. Si vos attributs contiennent des crochets angulaires non échappés <
>
cela ne fonctionnera probablement pas.
Preuve: http://regex101.com/r/dD4uT4