我有一个正则表达式模式,用于搜索文本文件中的单词.我如何忽略重复?
例如,看看这段代码
$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] );
Run Code Online (Sandbox Code Playgroud)
如果我在文章中有不止一个说lorem,输出将是这样的
5 matches found!
Matched words: daboom,lorem,lorem,lorem,lorem
Run Code Online (Sandbox Code Playgroud)
我希望模式只找到第一个出现,并忽略其余的,所以输出应该是:
2 matches found!
Matched words: daboom,lorem
Run Code Online (Sandbox Code Playgroud)
做一个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 );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
520 次 |
| 最近记录: |