在 PHP 中使用 preg_grep() 查找字符串之前或之后的字符
Posted
技术标签:
【中文标题】在 PHP 中使用 preg_grep() 查找字符串之前或之后的字符【英文标题】:Find character before or after of string using preg_grep() in PHP 【发布时间】: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);
【问题讨论】:
【参考方案1】:锚定你的正则表达式并在前后添加量词:
$findgroup = array("aphp", "phpb", "dephpfs", "potatoes", "aphpb", "php");
$result = preg_grep("/^(?:.1,2php|php.1,2)$/", $findgroup);
print_r($result);
输出:
Array
(
[0] => aphp
[1] => phpb
)
【讨论】:
嗨,我需要其他帮助。如果数组中包含值“php”,则您显示的方法是在结果中返回“php”。但我不需要它。那么有什么方法可以返回具有固定长度的数组值的值。也就是说结果应该包含'aphp','phpb'(固定长度4)。但结果不应包含“php”。 @SuUbha:将量词0,2
更改为 1,2
,请参阅我的编辑。以上是关于在 PHP 中使用 preg_grep() 查找字符串之前或之后的字符的主要内容,如果未能解决你的问题,请参考以下文章