一个简单的方法是使用str_replace或str_ireplace,它可以采用一系列' needle '(要搜索的东西),相应的替换和一系列'haystacks'(操作的东西).
$haystacks=array(
"The quick brown fox",
"jumps over the ",
"lazy dog"
);
$needles=array(
"the", "lazy", "quick"
);
$result=str_ireplace($needles, "", $haystacks);
var_dump($result);
Run Code Online (Sandbox Code Playgroud)
这产生了
array(3) {
[0]=>
string(11) " brown fox"
[1]=>
string(12) "jumps over "
[2]=>
string(4) " dog"
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,清除尾随空格的快速方法是使用array_map为每个元素调用trim
$result=array_map("trim", $result);
Run Code Online (Sandbox Code Playgroud)
使用str_replace函数的缺点是,它会替换找到的匹配范围内的话,而不仅仅是整个单词.为解决这个问题,我们可以使用正则表达式......
使用preg_replace的方法与上面的方法非常相似,但针是正则表达式,我们使用\ b检查匹配开始和结束时的"字边界"
$haystacks=array(
"For we shall use fortran to",
"fortify the general theme",
"of this torrent of nonsense"
);
$needles=array(
'/\bfor\b/i',
'/\bthe\b/i',
'/\bto\b/i',
'/\bof\b/i'
);
$result=preg_replace($needles, "", $haystacks);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11019 次 |
最近记录: |