我一直在使用下面的網站來測試PHP正則表達式,所以我不必不斷地上傳: PHP的preg_replace非貪婪麻煩
我用正則表達式如下:
/(.*?)\.{3}/
在以下字符串
(什麼也沒有更換):
Non-important data...important data...more important data
和的preg_replace將返回:
more important data
但我希望它返回:
important data...more important data
我想到了?是非貪婪的修飾語。這裏發生了什麼?
您在鏈接的站點上使用了哪些設置?我剛剛嘗試過,並按照我的預期收回「非重要數據」。你的正則表達式是找到第一場比賽,然後在找到一個'...'之前儘可能少地抓住它。 – 2009-12-14 06:03:11
@Doug Neiner:在他的網站鏈接中,請確保您在最後一部分選擇了'preg_replace'。我以這種方式重現了OP的結果。 – Asaph 2009-12-14 06:07:30
啊,非常真實。選錯了一個。 – 2009-12-14 06:19:46