2013-02-23 76 views

回答

1

preg_replace替換字符串中的所有匹配項。因此,在進行每次替換之後,它會在做出前一次替換的位置之後搜索另一匹配。

因此它首先查找/.?$/並找到c,並用x替換它,結果爲abx。然後,再次看起來/.?$/x開始。由於.?表示匹配0或1個字符,因此它匹配字符串末尾的零長度字符串,並用x替換它。然後它停止,因爲它已經到達了字符串的末尾。

+0

我也這麼想過,但根據這個邏輯,它必須進入一個無限循環。因爲'。?$'就像'。$'和'$'一樣。這裏'。$'已經在跳過最後一個字符了,所以如果我們可以在那之後運行某個東西,那麼沒有理由在'$'之後停止。雖然它可能像你說的那樣工作,但這仍然看起來像一個錯誤。 – 2013-02-23 07:25:45

+1

我在想我自己。我懷疑有一個特殊的檢查來避免這個循環。 – Barmar 2013-02-23 07:30:35

相關問題