Môže sa niekto pozrieť na môj regulárny javascript a navrhnúť správny?
Snažím sa vybrať páry atribútov (názov / hodnota) v reťazci HTML / XML, ako je napríklad nasledujúce?
<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>
Našiel som veľa riešení, ale žiadne sa nezdá byť spoľahlivé (vrátane tohto Regulárny výraz na extrahovanie atribútov značky)
Môj aktuálny regulárny výraz vyberie prvý pár atribútov, ale nedokáže zistiť, ako ho prinútiť vybrať všetky zodpovedajúce atribúty. Tu je regulárny výraz:
/<w*:?w*s+(?:((w*)s*=s*((?:(?:"[^"]*")|(?:"[^"]*")|[^>s]+))))[^>]*>/gim
Vďaka
odpovede:
1 pre odpoveď č. 1Poďme na to:
/(w+)s*=s*(([""])(.*?)3|([^>s]*)(?=s|/>))(?=[^<]*>)/g
Regex na to nie je ideálny. Ak vaše atribúty obsahujú neobsadené uhlové zátvorky <
>
pravdepodobne to nebude fungovať.
dôkaz: http://regex101.com/r/dD4uT4