【发布时间】:2013-04-06 23:21:38
【问题描述】:
我是一名学习 PHP 的初学者。我正在尝试使用正则表达式的各种组合。我指的是this 和this 并在this 上尝试示例。
我的疑惑:
为什么
preg_match_all('((a|b)*c)', 'ababc', $arr, PREG_PATTERN_ORDER);同时给出ababac和a作为输出。不应该只是ababac吗?假设我正在尝试读取
$arr中的所有可能输出,我该如何做到这一点而不必回显数组的每个元素?目前,我使用foreach来迭代$arr中的元素。这是正确的/有更好的方法吗?为什么
preg_match_all()给出一个包含元素$arr[$i][0]和在某些情况下$arr[0][$i]的二维数组,其中$i不是可能的匹配项。有没有办法知道输出将如何存储?
很抱歉在一篇文章中发布了太多问题。请告诉我是否需要更改。
【问题讨论】:
-
让我们从第一个开始:你能把
var_dump($arr)放上我们看看它给出了什么吗? -
echo var_dump($arr);给我 array(1) { [0]=> array(2) { [0]=> string(6) "ababac" [1]=> string(1) "a" } }
标签: php regex preg-match-all capture-group