首頁 > 後端開發 > php教程 > 為什麼我會收到'preg_match 中未知的修飾符'g'”錯誤?

為什麼我會收到'preg_match 中未知的修飾符'g'”錯誤?

Mary-Kate Olsen
發布: 2024-11-11 11:50:03
原創
481 人瀏覽過

Why Am I Getting the

揭開「preg_match 中的未知修飾符'g'」背後的秘密

在PHP 中使用preg_match 函數處理正式表達式時,您可能會遇到一條錯誤訊息,指出「未知修飾符'g'」。此問題與您使用的正規表示式中的語法不正確有關。

問題

您嘗試使用的正規表示式包含「g」 preg_match 函數無法辨識的修飾符(例如 /regex/gim)。雖然某些線上正規表示式測試網站可能允許使用「g」修飾符,但 PHP 在這種情況下不支援它。

解決方案

要解決此問題,您可以使用 preg_match_all 函數來代替,它支援 'g' 修飾符來匹配模式的多次出現。 'g' 修飾符引入了全域搜索,指示該函數應該迭代整個字串並匹配模式的所有出現。

範例

而不是:

preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)
登入後複製

使用:

preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
登入後複製

透過在preg_match_all 函數中將' ' 修飾符替換為'm' 修飾符,您的代碼將按預期運行,匹配多次出現的輸入字串中指定的電子郵件地址模式。

以上是為什麼我會收到'preg_match 中未知的修飾符'g'”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板