【发布时间】:2012-01-17 19:46:49
【问题描述】:
我想知道是否可以使用正则表达式截断数组。
特别是我有一个这样的数组:
$array = array("AaBa","AaBb","AaBc","AaCa","AaCb","AaCc","AaDa"...);
我有这个字符串:
$str = "AC";
我想要$array 的片段,从开始到最后出现匹配/A.C./ 的字符串(在示例中,索引5 处的“AaCc”):
$result = array("AaBa","AaBb","AaBc","AaCa","AaCb","AaCc");
我该怎么做?我想我可能会使用array_slice,但我不知道如何使用它。
【问题讨论】:
-
不太清楚你想要什么。您的模式描述似乎更像是
fnmatch()glob。如果您只想过滤列表或提取连续范围的匹配项,那么它是模棱两可的。 -
/A*C*/i也会匹配一个空字符串。您确定应该为此任务使用正则表达式吗? -
$str和模式应该是什么关系? -
抱歉,我更新了我提到的问题 "/A.C./" A 后跟只有 1 个随机字符,然后是 C 后跟只有 1 个随机字符。
-
@Giorgio:我对原始版本中的代码进行了更新(因此请确保使用该代码),如果您有兴趣,还发布了一个替代版本。