Alguém pode olhar para o meu regex em javascript e sugerir um correto?
Eu estou tentando selecionar os pares de atributos (nome / valor) em uma seqüência HTML / XML como a seguir?
<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>
Eu encontrei muitas soluções, mas nenhuma parece infalível (incluindo esta Expressão regular para extrair atributos de tag)
Meu regex atual seleciona o primeiro par de atributos, mas não consegue descobrir como fazer com que ele selecione todos os atributos correspondentes. Aqui está o regex:
/<w*:?w*s+(?:((w*)s*=s*((?:(?:"[^"]*")|(?:"[^"]*")|[^>s]+))))[^>]*>/gim
obrigado
Respostas:
1 para resposta № 1Vamos ter uma chance:
/(w+)s*=s*(([""])(.*?)3|([^>s]*)(?=s|/>))(?=[^<]*>)/g
Regex não é ideal para isso. Se seus atributos contiverem colchetes angulares sem escape <
>
provavelmente não funcionará.
Prova: http://regex101.com/r/dD4uT4