Javascript 正则表达式支持非顺序文本

Javascript 正则表达式支持非顺序文本,javascript,regex,internet-explorer,firefox,browser,Javascript,Regex,Internet Explorer,Firefox,Browser,我有个问题需要用正则表达式解决 如果我使用Firefox或IE8,javascript将生成我真正想要的代码 <div style="visibility: hidden;" id="wizardId1">1001</div><div style="visibility: hidden;" id="wizardId2">1002</div> 10011002 然而,对于IE7,它将产生不同的 <DIV id=wizardId1 style

我有个问题需要用正则表达式解决

如果我使用Firefox或IE8,javascript将生成我真正想要的代码

<div style="visibility: hidden;" id="wizardId1">1001</div><div style="visibility: hidden;" id="wizardId2">1002</div>
10011002
然而,对于IE7,它将产生不同的

<DIV id=wizardId1 style="VISIBILITY: hidden;">1001</DIV><DIV id=wizardId2 style="VISIBILITY: hidden;" >1002</DIV>
10011002
这是放置在style参数之前的div的id

在我的java程序中,我只有正则表达式支持第一个(Firefox和IE8) 正则表达式是

<(?:DIV|div)\s+style=(?:["\'])*(?:[\w\d:; ]+)*(?:["\'])*\s+id=(?:["\'])*([\w\d]+)(?:["\'])*>([\w\d]+)</(?:DIV|div)>
([\w\d]+)
不想要的结果
匹配1:10011002
分组:
1:wizardId2
2: 1002
问题: 如何在不考虑(style=“visibility:hidden;”)的情况下,使用正则表达式生成与第一个结果相同的结果? (不使用。*和不添加额外组)


谢谢你的帮助。

这对你有用吗

<(?:DIV|div)(?:(?:\s+style=(?:["\'])*(?:[\w\d:; ]+)*(?:["\'])*)|(?:\s+id=(?:["\'])*([\w\d]+)(?:["\'])*))*>([\w\d]+)</(?:DIV|div)>

这对你有用吗

<(?:DIV|div)(?:(?:\s+style=(?:["\'])*(?:[\w\d:; ]+)*(?:["\'])*)|(?:\s+id=(?:["\'])*([\w\d]+)(?:["\'])*))*>([\w\d]+)</(?:DIV|div)>

之前,.*匹配第一个
结尾的所有内容之前,.*匹配第一个
结尾的所有内容这一切正常,并且非常一般(我假设您不需要检查样式属性):


([^这工作正常,而且非常通用(我假设您不需要检查样式属性):


([^这不应该是一个带有Javascript标记的问题吗?我对Javascript做不了多少,因为它会随着浏览器版本的变化而变化。这是关于动态/灵活的正则表达式。这不是一个带有Javascript标记的问题吗?我对Javascript做不了多少,因为它会随着浏览器版本的变化而变化。这是关于动态/灵活的正则表达式。这正是p完美的答案。非常感谢兄弟。这正是完美的答案。非常感谢兄弟。
Match 1: <div style="visibility: hidden;" id="wizardId1">1001</div><div style="visibility: hidden;" id="wizardId2">1002</div>
    Subgroups:
    1: wizardId2
    2: 1002
<(?:DIV|div)(?:(?:\s+style=(?:["\'])*(?:[\w\d:; ]+)*(?:["\'])*)|(?:\s+id=(?:["\'])*([\w\d]+)(?:["\'])*))*>([\w\d]+)</(?:DIV|div)>
<(?:DIV|div).*?\s+id=(?:["\'])*([\w\d]+)(?:["\'])*[^>]*>([\w\d]+)</(?:DIV|div)>
<(?:DIV|div).*\s+id=(?:["\'])*([\w\d]+)(?:["\'])*[^>]*>([\w\d]+)</(?:DIV|div)>