如何替换字符串中的单词,但前提是该单词之前没有我选择的字符串?
例如,我们有以下字符串:
String 1: long boat
String 2: jet boat
如果前一个单词不是"jet",我如何替换"boat"?
我正在使用PHP,到目前为止我已经想出了这个。
preg_replace("/['s+]boat/", "", $string);
这适用于在后面有"jet"的单词
preg_replace("/['s+]boat(?!'s*jet)/", "", $string);
Lookbacking
使用此:
$replaced = preg_replace('~(?<!jet )boat~', '', $yourstring);
解释
- 负后备
(?<!jet )
断言当前位置之前的不是jet
boat
与文字字符匹配- 我们用空字符串替换
参考
- 前瞻性和前瞻性零长度断言
- 掌握向前看和向后看