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