1

次の問題を解決する方法がわかりません。

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

これは「e」だけを切り取りますが、「es」は削除されます。最初のeのみを削除する(そして2番目の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 に答える