preg_match_all()不匹配所有可能的出现

时间:2015-12-29 07:14:24

标签: php regex string preg-match-all

我有二进制模式" 10000101001"并且我想在开始和结束1中匹配具有0的字符串。因此对于上面给出的示例,应该有3个可能的匹配100001,101,1001。

以下是我正在尝试的示例代码:

function solution() {
    $length = 0;
    $decStr = "10000101001";
    $pattern = "/[1][^1]0*[1]/";
    preg_match_all($pattern, $decStr, $matches);
    echo "<pre>";
    print_r($matches);
    echo "</pre>";
}

这样可以输出

Array
(
    [0] => Array
        (
            [0] => 100001
            [1] => 1001
        )

)

1 个答案:

答案 0 :(得分:3)

积极前瞻

/(?=(1[^1]+1))/

阅读本文:http://www.regular-expressions.info/lookaround.html