正則表達式對於刪除引用和目錄「uploads /」之間的任何內容會產生什麼影響?如何使用preg_replace刪除X和Y之間的內容?
使用regexpression發生器,我得到這個?:(?< = \ =「)[^] +(?=上傳/)
$block_data = preg_replace('/(?<=\=")[^]+?(?=uploads/)/g','',$block_data);
但似乎是消除一切:(
正則表達式對於刪除引用和目錄「uploads /」之間的任何內容會產生什麼影響?如何使用preg_replace刪除X和Y之間的內容?
使用regexpression發生器,我得到這個?:(?< = \ =「)[^] +(?=上傳/)
$block_data = preg_replace('/(?<=\=")[^]+?(?=uploads/)/g','',$block_data);
但似乎是消除一切:(
測試簡單的解決辦法是
$block_data = preg_replace('/(?<=").*?(?=uploads\/)/','',$block_data);
所做的更改:
/
g
修改,這是在PHP這工作是不必要的,所以據我所知,減少first"middle/uploads/end"
到first"uploads/end"
。
通過簡化您刪除外觀中的「=」部分(這可能很重要),並且您刪除了懶惰(可能很危險),並將其替換爲可選'.'(這是錯誤的初始正則表達式)。 – 2010-10-19 17:29:43
@科林規範是「引用後」(因此,後面的變化)和「任何內容」(因此改爲'。*')。我已經改變了貪婪的'*'。 – lonesomeday 2010-10-19 17:33:29
你可以舉一個輸入例子嗎? – 2010-10-19 17:19:30
而不是一個正則表達式生成器,我會使用一個正則表達式檢查器,比如[在[dummyman](http://bokehman.com/regex_checker)(我的最愛)或者[gskinner](http://gskinner.com/) RegExr /)或[spaweditor](http://www.spaweditor.com/scripts/regex/)(用於PHP)或[regexlib](http://regexlib.com/RETester.aspx)。這樣你就可以學會自己寫,而且你不需要生成器。 – 2010-10-19 17:36:35