PHP模糊搜索并替换为字符串?

时间:2019-05-18 13:30:00

标签: php fuzzy-search

我想知道是否可以将模糊搜索与str_replace结合使用。

更清楚地说,这是一个例子:

$data = array('my first word', 'myl second word', 'my third words')

我想找到一种方法,通过模糊搜索错别字和复数形式来替换每次出现的“我的单词”。

最终结果看起来像这样:

$data = array('first', 'second', 'third')

预先感谢

1 个答案:

答案 0 :(得分:0)

您可以在带有preg_match的正则表达式中使用单词边界来完成此操作。假设您已经知道要查找的术语...

$goodterms = array('first', 'second', 'third');
$datas = array('my first word', 'myl second word', 'my third words');
foreach($datas as $data){
    if(preg_match('/\b(' . implode('|', $goodterms) . ')\b/', $data, $matches)) {
        $match[] = $matches[1];
    }
}
print_r($match);

https://3v4l.org/H0Y8k

|是一个更改。 ()组成一个小组。 \b确保组中匹配的任何内容都不包含开头/结尾内容。 https://www.regular-expressions.info/wordboundaries.html