PHP - 正则表达式删除一个字符过多


PHP - Regex deletes one character too much

我找不到如何解决以下问题:

 preg_replace("/e[^t]/", "", "testet");

这将只删除"e",但删除"es"。我怎样才能实现它只删除第一个 e(并将第二个"et"排除在外)?

谢谢!

负面展望:

preg_replace("/e(?!t)/", "", "testet")

正如这里所解释的,前瞻不会捕获字符(使用字符),它们只会断言匹配是否有效。

preg_replace("/e([^t])/", "$1", "testet");

与其尝试/e[^t]/ /e(?!t)/(负面展望)

让它不贪婪

preg_replace("/e[^t]/u", "", "testet");