解决“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中文网其他相关文章!