【问题标题】:Find character before or after of string using preg_grep() in PHP在 PHP 中使用 preg_grep() 查找字符串之前或之后的字符
【发布时间】:2017-05-09 11:38:04
【问题描述】:

我需要使用 PHP preg_grep() 从数组中查找单词之前或之后的任何字符。我有一个像下面这样的数组

$findgroup = array("aphp", "phpb", "dephpfs", "potatoes");

我需要从数组中查找在单词“php”之前或之后(任一侧,而不是两侧)具有单字符或双字符的“php”单词的值。结果应该是数组中的 'aphp','phpb' 字。

我尝试使用以下代码但不起作用。

$result[] = preg_grep("/(.{1})php(.{1})/", $findgroup);

【问题讨论】:

    标签: php preg-grep


    【解决方案1】:

    锚定你的正则表达式并在前后添加量词:

    $findgroup = array("aphp", "phpb", "dephpfs", "potatoes", "aphpb", "php");
    $result = preg_grep("/^(?:.{1,2}php|php.{1,2})$/", $findgroup);       
    print_r($result);
    

    输出:

    Array
    (
        [0] => aphp
        [1] => phpb
    )
    

    【讨论】:

    • 嗨,我需要其他帮助。如果数组中包含值“php”,则您显示的方法是在结果中返回“php”。但我不需要它。那么有什么方法可以返回具有固定长度的数组值的值。也就是说结果应该包含'aphp','phpb'(固定长度4)。但结果不应包含“php”。
    • @SuUbha:将量词 {0,2} 更改为 {1,2},请参阅我的编辑。
    猜你喜欢
    • 2012-02-10
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多