gpt4 book ai didi

php - 忽略正则表达式模式中的重复项

转载 作者:可可西里 更新时间:2023-11-01 00:37:15 26 4
gpt4 key购买 nike

我有一个正则表达式模式可以在文本文件中搜索单词。如何忽略重复项?

例如,看看这段代码

$pattern = '/(lorem|ipsum|daboom|pahwal|ababaga)/i';
$num_found = preg_match_all( $pattern, $string, $matches );

echo "$num_found match(es) found!";
echo "Matched words: " . implode( ',', $matches[0] );

如果我在文章中有多个说lorem,输出将是这样的

5 matches found!
Matched words: daboom,lorem,lorem,lorem,lorem

我希望模式只找到第一个出现的地方,而忽略其余的,所以输出应该是:

2 matches found!
Matched words: daboom,lorem

最佳答案

做一个array_unique$matches[0] 上。也许一个array_map如果您希望唯一性不区分大小写,请使用 strtolower

$pattern = '/(lorem|ipsum|daboom|pahwal|ababaga)/i';
preg_match_all( $pattern, $string, $matches );
$matches = $matches[0]?array_unique(array_map('strtolower', $matches[0])):array();

echo count($matches)." match(es) found!";
echo "Matched words: " . implode( ',', $matches );

关于php - 忽略正则表达式模式中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4507772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com