【发布时间】:2009-11-25 21:59:21
【问题描述】:
考虑以下示例:
$target = 'Xa,a,aX';
$pattern = '/X((a),?)*X/';
$matches = array();
preg_match_all($pattern,$target,$matches,PREG_OFFSET_CAPTURE|PREG_PATTERN_ORDER);
var_dump($matches);
它只返回系列中的最后一个“a”,但我需要的是所有的“a”。
特别是,我需要 ALL EACH OF 'a 在字符串中的位置单独,因此需要 PREG_OFFSET_CAPTURE。
示例要复杂得多,请参阅相关问题:pattern matching an array, not their elements per se
谢谢
【问题讨论】:
-
如果这个描述不能很好地代表你的实际问题,为什么要开始这篇新文章呢?
-
它被简化了,它是我复杂问题的另一个“子问题”,它可以看作是一个独立的问题,有自己的解决方案。
-
目标是否可以包含多个a的列表,例如:'abcdXa,a,a,aXefghiXa,a,a,a,a,a,a,aX'?如果是这样,在这种情况下,您需要两个单独的数组,一个用于每个 a 的列表,还是一个包含所有 a 的索引的组合数组,无论它们来自哪里?
-
不,只有一对X,没有嵌套什么的。我需要在目标中可以找到 a 的每个位置。