【发布时间】:2017-10-10 12:05:45
【问题描述】:
我只需要找到具有特定字母集以及字母集之前或之后的任何字符的数组元素。
我有这样的数组:
$sample = array("sten", "netff", "enet", "denet");
$value = array('e', 'n', 't');
我需要从 $sample 数组中找到在匹配词之前或之后(任一侧,而不是两侧)具有 'e,n,t' 字符和单字符或双字符的值。如果我在它之前或之后(任一侧,而不是两侧)使用模式 e、n、t 和 1 个字母进行搜索,结果将是
array("sten", "enet")
如果我在它之前或之后(任一侧,而不是两侧)使用模式 e、n、t 和 2 个字母进行搜索,结果将是
array("netff", "denet")
我用preg_grep() 尝试了正则表达式,但它不起作用:
前后各1个字母(两边,不是两边):
$result = preg_grep("/^(?:.{1}".$value."|".$value.".{1})$/", $sample);
前后2个字母(两边,不是两边):
$result = preg_grep("/^(?:.{2}".$value."|".$value.".{2})$/", $sample);
【问题讨论】:
标签: php arrays substring filtering