从句子中删除选定单词以外的单词

时间:2019-04-06 18:27:06

标签: php

我有大约1000个不同的句子。我想从这些句子中删除单词“ DLC”,除了片段“ All DLC BG”和“ DLC Comfort”之外,因此不应从这两个片段中删除单词“ DLC”。

我认为这里需要array(),但我不知道该怎么做。

我尝试过这样的事情:

if (stripos($title, 'All DLC BG') && stripos($title, 'DLC Comfort') == false) {
            $title = str_ireplace("DLC ", " ", $title);
}

但不起作用。

3 个答案:

答案 0 :(得分:0)

您快到了,但是您需要检查两个操作的布尔条件,并使用三等号:

if (stripos($title, 'All DLC BG') === false && stripos($title, 'DLC Comfort') === false) {
    $title = str_ireplace("DLC ", "", $title);
}

另外,我认为您想替换为空字符串,而不是单个空格。

答案 1 :(得分:0)

如果DLC在一个句子中可以出现多次,则一种选择可能是使用正则表达式,并使用您不想更改的替代词来选择这些句子,然后使用SKIP FAIL跳过那些句子。然后仅使用单词边界匹配\bDLC\b

在替换中,使用一个空字符串。

\b(?:All DLC BG|DLC Comfort)\b(*SKIP)(*FAIL)|\bDLC\b

查看regex101 demo

例如:

$re = '/(?:All DLC BG|DLC Comfort)(*SKIP)(*FAIL)|\bDLC\b/m';
$title = 'test All DLC BG test DLC Comfort and DLC here

test here All DLC BG All DLC BG BG ALL DLC';
$result = preg_replace($re, '', $title);

echo $result;

Php demo

答案 2 :(得分:-2)

您可以使用str_replace()并传递一个空字符串,我认为。 希望这会有所帮助!