這次帶給大家在PHP裡使用正規的效率貪婪、非貪婪與回溯詳解(附程式碼),在PHP裡使用正規的效率貪婪、非貪婪與回溯的注意事項有哪些,下面就是實戰案例,一起來看一下。
先掃盲什麼是正規表示式的貪婪,什麼是非貪婪?或說什麼是匹配優先量詞,什麼是忽略優先量詞?
好吧,我也不知道概念是什麼,來舉例。
某同學想過濾之間的內容,那是這麼寫正規以及程式的。
$str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪
看起來,好像沒什麼問題,其實不然。若
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>';
那麼經過上面的程式處理,其結果為
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+?</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为 <script>alert(document.cookie)</script>
仍然達不到他想要的效果。上面的就是非貪婪,也有的叫惰性。其標誌非貪婪的標識為量數元字元後面加? ,例如 +?、*?、??(比較特殊,以後的BLOG中,我會寫到)等。即標識非貪婪,如果不寫?就是貪婪。例如
$str = '<script<script>alert(document.cookie)</script>>alert(document.cookie)</script>'; $str = preg_replace('%<script>.+</script>%i','',$str);//非贪婪 print_r($str); //$str 输出为作者最新文章
2018-06-11 11:57:34 2018-06-15 15:55:18 2018-06-15 15:49:00 2018-06-15 15:46:15 2018-06-15 15:42:38 2018-06-15 15:40:34 2018-06-15 15:39:32 2018-06-15 15:37:14 2018-06-15 15:34:21 2018-06-15 15:22:51最新問題PHP數組從URL參數中取得的行為不如預期 我有一個包含類別ID的URL參數,我想將其視為一個數組,如下所示:http://example.com?cat[]=3,9,13在PHP中,我使用它從URL參數取得數組:$catI...來自於 2024-04-06 22:09:02011428我應該在 apache 中哪裡放置 CustomLog 指令 我正在使用php:7.2-apachedocker。我需要禁用運行狀況檢查url登入訪問日誌。基於此鏈接,他們提到了有關修改Customlog指令的資訊。我不是關於需要更改Cust...來自於 2024-04-06 22:03:5901990傳回值中變數的格式是什麼? 我是php的新學習者。我發現有一段程式碼:if($x<time()){return[false,'error'];}邏輯或變數並不重要,但我不明白[false,'error'...來自於 2024-04-06 21:55:2001778依照ID對MySQL結果進行分組以便循環遍歷 我有一個表,其中有mysql中的航班資料。我正在編寫一個php程式碼,它將使用codeigniter3對資料進行分組和顯示journey_idair_idFlightDuratio...來自於 2024-04-06 17:27:5601406