任何人都可以在javascript中查看我的正则表达式并建议一个正确的吗?
我正在尝试在HTML / XML字符串中选择属性(名称/值)对,如下所示?
<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>
我找到了很多解决方案但没有一个看起来万无一失(包括这一个Regular expression for extracting tag attributes)
我当前的正则表达式选择第一个属性对,但无法弄清楚如何使其选择所有匹配的属性。这是正则表达式:
/<\w*:?\w*\s+(?:((\w*)\s*=\s*((?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))))[^>]*>/gim
由于
答案 0 :(得分:1)
让我们一起去:
/(\w+)\s*=\s*((["'])(.*?)\3|([^>\s]*)(?=\s|\/>))(?=[^<]*>)/g
正则表达并不理想。如果您的属性包含未转义的尖括号<
>
,则可能无效。