编程语言
首页 > 编程语言> > php – 如何使用一个或多个搜索词搜索字符串并在每次匹配后添加字符串?

php – 如何使用一个或多个搜索词搜索字符串并在每次匹配后添加字符串?

作者:互联网

给定一个由一个空格分隔的一个或多个搜索字符串的字符串,我想不区分大小写地搜索文本中的匹配项.找到匹配项后,我想在匹配的子字符串后面追加< - . 这就是我尝试过的: 码

public function my_replace(string $fullText, string $searchText){

    $searches = explode(' ',$searchText);
    $replace = array();
    foreach ($searches as $i => $search){
        $replace[] = $search . '<-';
    }

    return str_ireplace($searches, $replace, $fullText);
}

echo my_replace('A week ago, Elvis left the Building', 'elvis left');

产量

A week ago, elvis<- left<- the Building

期望的输出

A week ago, Elvis<- left<- the Building

所以我想要替换Elvis或elvis,因此替换str_ireplace,但是在输出中我想以与之前相同的方式显示它.

tldr;

如果要替换的字符串实际上不是同一个案例,如何用相同的大小写字母替换字符串?这甚至有意义吗?

解决方法:

我对你的代码本身进行了一些修改,

这个preg_replace将帮助您解决问题,

片段

function my_replace(string $fullText, string $searchText)
{
    $searches = explode(' ', $searchText);
    $replace  = array();
    foreach ($searches as $i => $search) {
        $fullText = preg_replace("/$search/i", "\$0<-", $fullText);
    }
    return $fullText;
}
echo my_replace('A week ago, Elvis left the Building', 'elvis left');

这是工作demo.

节目输出

A week ago, Elvis<- left<- the Building

标签:str-replace,php,search,case-insensitive,preg-replace
来源: https://codeday.me/bug/20190731/1586522.html