這裏有一個簡單的例子:非貪婪正則表達式的行爲貪婪地
文字:<input name="zzz" value="18754" type="hidden"><input name="zzz" value="18311" type="hidden"><input name="zzz" value="17138" type="hidden">
正則表達式:/<input.*?value="(18754|17138)".*?>/
當比賽由一個空字符串替換,結果爲空字符串。由於我使用非貪婪匹配(.*?
),我預計中間<input>
將保持不變。任何人都可以解釋爲什麼它被刪除?
以下內容是什麼意思:*「當匹配被空字符串替換」*? –
您的正則表達式匹配整個輸入標記,因此引擎會拾取整個輸入標記並用空字符串替換它。然後會發生什麼是你的三個輸入標籤完全消失。 – BoltClock
@BoltClock,不,模式匹配兩次:** 1:**''and ** 2:**''。或者我誤解了? –