假设我有一个如下所示的字符串:
现在就给我你的xw al l et!
一系列被禁词:
钱包,香蕉,土豆
我如何编写正则表达式以捕获任何这些单词?即使在字符之间有空格。
干杯。
答案 0 :(得分:1)
此代码将完成工作:
foreach($banned as $word) {
$chars = str_split($word);
$pattern = implode(' ?', $chars);
$check = preg_match('/'.$pattern.'/i', $text);
}
$ banned是一系列禁词
$ text是您要验证禁用词的文本
并且如果找到禁止的单词,则检查$,并根据您想要实现的逻辑,以适当的方式使用此变量。
答案 1 :(得分:-1)
捕捉任何单词的简单方法(没有空格):
function censorship($bannedwords, $sentence) {
foreach($bannedwords as $word) $sentence = str_replace($word, '****', $sentence);
return $sentence;
}
$bannedwords = ['banana', 'potato'];
echo censorship($bannedwords, 'Every banana is a potato');
// Output : Every **** is a ****