Home >Backend Development >PHP Tutorial >Why Am I Getting 'Unknown Modifier 'g' in preg_match' and How Do I Fix It?

Why Am I Getting 'Unknown Modifier 'g' in preg_match' and How Do I Fix It?

Linda Hamilton
Linda HamiltonOriginal
2024-11-13 10:31:02753browse

Why Am I Getting

Addressing "Unknown Modifier 'g' in preg_match in PHP"

While exploring the intricacies of regular expressions, you may have encountered an error message stating "Unknown modifier 'g' in..." when using preg_match. This issue arises when attempting to utilize the 'g' modifier in your regex pattern. However, there is no 'g' modifier in preg_match.

To resolve this issue, you need to switch to the preg_match_all function instead. Unlike preg_match, which searches for the first occurrence of the pattern and returns a boolean value, preg_match_all searches for all occurrences of the pattern and returns an array of matches.

Correctly Modified Regex Pattern

Your original regex pattern is:

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

To use this pattern with preg_match_all, modify it as follows:

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

Revised Code

Replace your original preg_match call with the following:

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

By making this simple adjustment, you can eliminate the "'g' modifier not supported" error and correctly process multiple occurrences of the pattern in your string.

The above is the detailed content of Why Am I Getting 'Unknown Modifier 'g' in preg_match' and How Do I Fix It?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn