是否可以在正则表达式中查找与String的特定部分匹配的所有组?
<body>
<img id="die1" src="die1.png" width="48" height="48">
<img id="die2" src="die1.png" width="48" height="48">
<button onclick="rolldice()">roll dice</button>
<p id="result"></p>
</body>
<script>
function rolldice(){
var diece1 = document.getElementById("die1");
var diece2 = document.getElementById("die2");
var result = document.getElementById("result");
var d1 = Math.floor(Math.random() * 6) +1;
var d2 = Math.floor(Math.random() * 6) +1;
var total = d1 + d2;
var num = 0;
var interval = setInterval(function(){
num +=1;
var num1 = Math.floor(Math.random() * 8) +1;
var num2 = Math.floor(Math.random() * 8) +1;
if(num == 60){
diece1.src = "die" + d1 + ".png";
diece2.src = "die" + d2 + ".png";
clearInterval(interval);
}
diece1.src = "anim" + num1 + ".png";
diece2.src = "anim" + num2 + ".png";
}, 75);
}
</script>
此示例仅将第一个组作为匹配返回,但我也对第二个组也匹配这一事实感兴趣。
答案 0 :(得分:3)
没有直接的方法可以做到这一点,正则表达式会从左到右消耗字符串,直到找到匹配为止。
使用|
意味着它将首先检查第一个替代方案,如果它与回溯不匹配并尝试第二个替代方案。在这种情况下,(green trousers)
匹配,因此搜索停止并返回匹配。
答案 1 :(得分:0)
没有办法检查单个正则表达式中的所有情况,但是,有一些结构允许您检查多个子模式是否与特定子字符串匹配,这些是所谓的“零宽度断言”(参见{ {3}},在»特殊构造«下
示例:
umbracoDbDSN
只会在"(?=[ab]{5})[bc]{5}"