我正在尝试从字符串中删除子字符串,但前提是该子字符串不是另一个较大子字符串的一部分。我希望这很清楚。
例如,我想从下面的字符串中删除字母'p'的所有字母,但仅在它后面没有'e'的情况下。换句话说,我想删除'p',但不是'pe'。
apes are super people
应该成为:
apes are super peole
如您所见,只删除了一个字母'p'的出现。
答案 0 :(得分:1)
你可以使用这个负面的前瞻性正则表达式:
/p(?!e)/
p(?!e)
表示匹配p
,如果没有后跟字母e
。
<强>代码:强>
$re = "/p(?!e)/";
$str = "apes are super people";
$result = preg_replace($re, '', $str);
//=> apes are super peole
答案 1 :(得分:1)
您可以将正则表达式与negative lookahead一起使用,以确保没有&#39; e&#39;按照&#39;#,然后您可以将正则表达式与preg_replace()
一起使用:
h_t