首页  >  文章  >  后端开发  >  为什么我收到“preg_match 中未知的修饰符‘g’”以及如何修复它?

为什么我收到“preg_match 中未知的修饰符‘g’”以及如何修复它?

Linda Hamilton
Linda Hamilton原创
2024-11-13 10:31:02688浏览

Why Am I Getting

解决“PHP 中 preg_match 中的未知修饰符 'g'”

在探索正则表达式的复杂性时,您可能遇到了错误使用 preg_match 时显示消息“未知修饰符 'g' in...”。当尝试在正则表达式模式中使用“g”修饰符时,会出现此问题。但是,preg_match 中没有 'g' 修饰符。

要解决此问题,您需要切换到 preg_match_all 函数。与 preg_match 搜索模式的第一次出现并返回布尔值不同,preg_match_all 搜索模式的所有出现并返回匹配数组。

正确修改的正则表达式模式

您原来的正则表达式模式是:

/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim

使用此模式与 preg_match_all,修改如下:

/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im

修订代码

将原始 preg_match 调用替换为以下内容:

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

通过进行这个简单的调整,您可以消除“不支持'g'修饰符”错误并正确处理多次出现的字符串中的模式。

以上是为什么我收到“preg_match 中未知的修饰符‘g’”以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn