PHP:正则表达式替代 array_intersect

Posted

技术标签:

【中文标题】PHP:正则表达式替代 array_intersect【英文标题】:PHP: Regex alternative to array_intersect 【发布时间】:2014-04-08 02:54:50 【问题描述】:

我正在使用一种方法,该方法采用一组单词并删除任何与以下内容不匹配的内容:

return is_array( $var ) ? array_intersect( $var,
    array(
        'current_page_item',
        'current-menu-item',
        'current_page_parent',
        'current_page_ancestor',
        'current-menu-ancestor',
        'first',
        'last',
        'vertical',
        'horizontal'
    )
) : '';

如何修改它以便包含li(?:-[a-z_-]+)?? (例如:lili-align_leftli-magnify

【问题讨论】:

【参考方案1】:

您可以使用 array_filter 来实现:

return is_array( $var ) ? array_filter($var, function($ele) 
  return preg_match('/li(?:-[a-z_-]+)?/', $ele);
) : '';

【讨论】:

以上是关于PHP:正则表达式替代 array_intersect的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式替代 HTML 解析

替代正则表达式以解析链接的 HTML 页面 [重复]

为啥替代品的顺序在正则表达式中很重要?

Python中正则表达式的替代品

gsutil - 正则表达式与替代不工作

python替代正则表达式搜索返回元组无