1

我不知道如何解决以下问题:

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

这将只删除“e”,但会删除“es”。我怎样才能做到它只删除第一个 e (并留下第二个'et')?

谢谢!

4

4 回答 4

5

负前瞻:

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

正如这里所解释的,前瞻不会捕获字符(消耗字符),它们仅在匹配有效时才断言。

于 2012-05-26T18:49:20.640 回答
1
preg_replace("/e([^t])/", "$1", "testet");
于 2012-05-26T18:50:13.110 回答
1

而不是/e[^t]/尝试/e(?!t)/(负前瞻)

于 2012-05-26T18:51:55.747 回答
-3

让它不贪心

preg_replace("/e[^t]/u", "", "testet"); 
于 2012-05-26T18:50:19.373 回答