【发布时间】:2011-09-28 14:58:59
【问题描述】:
我正在尝试让所有子字符串与乘数匹配:
$list = '1,2,3,4';
preg_match_all('|\d+(,\d+)*|', $list, $matches);
print_r($matches);
此示例如预期返回 [1] 中的最后一个匹配项:
Array
(
[0] => Array
(
[0] => 1,2,3,4
)
[1] => Array
(
[0] => ,4
)
)
但是,我想获取与(,\d+) 匹配的所有字符串,以获得类似:
Array
(
[0] => ,2
[1] => ,3
[2] => ,4
)
有没有办法用preg_match_all()这样的单个函数来做到这一点?
【问题讨论】:
-
语言不同,但答案与stackoverflow.com/questions/6571106 相同:不能,但您可以轻松地通过
,拆分。 -
@Kobi:谢谢你的链接。从他们所说的来看,某些语言有解决方案,PHP 有什么希望,还是一个明确的答案?
-
[0] => ,2在 PHP 中是不可能的。,2是字符串还是数字? -
没有。据我所知,如果您坚持使用全正则表达式解决方案,PHP 不支持捕获同一组。
-
谢谢科比。如果你有答案,我会接受:-)
标签: php regex preg-match preg-match-all