php - preg_match_all() 不匹配所有可能出现的情况

标签 php regex string preg-match-all

我有二进制模式“10000101001”,我想匹配开始和结束为 1 的字符串。因此对于上面给出的示例,应该有 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[^1]+1))/

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

关于php - preg_match_all() 不匹配所有可能出现的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34506267/

相关文章:

PHP - 正则表达式用于删除字符串中除日期之外的所有内容

regex - 在powershell中用正则表达式替换文本文件的内容

php - Windows 上的 Apache/PHP 因正则表达式而崩溃

JavaScript:查找字符串中最大的单词

javascript - 如何在单击按钮时同时运行表单操作和单击事件

php - 为什么我的表格尽管显示“成功”,但仍保持空白?

php - 如何修复 laravel Seed 中的 UTF8?

r - str_replace_all() 不会检测返回或换行 "\\r\\n"

c++ - 在此字符串操作代码中出现 out_of_range 错误

javascript - 没有全局标志的正则表达式分组 OR 运算符匹配策略