匹配Java-Regex中的多个组

时间:2016-07-06 10:34:32

标签: java regex

是否可以在正则表达式中查找与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>

此示例仅将第一个组作为匹配返回,但我也对第二个组也匹配这一事实感兴趣。

2 个答案:

答案 0 :(得分:3)

没有直接的方法可以做到这一点,正则表达式会从左到右消耗字符串,直到找到匹配为止。

使用|意味着它将首先检查第一个替代方案,如果它与回溯不匹配并尝试第二个替代方案。在这种情况下,(green trousers)匹配,因此搜索停止并返回匹配。

答案 1 :(得分:0)

没有办法检查单个正则表达式中的所有情况,但是,有一些结构允许您检查多个子模式是否与特定子字符串匹配,这些是所谓的“零宽度断言”(参见{ {3}},在»特殊构造«下

示例:

umbracoDbDSN

只会在"(?=[ab]{5})[bc]{5}"

上匹配