Introduced below, use PHP regular matching domain name method. We know that the international domain name format is as follows: The domain name is composed of any combination of specific character sets, English letters, numbers and "-" (i.e. hyphens or minus signs) in various countries. However, "-" cannot be included at the beginning or end, and "-" cannot appear continuously. Letters in domain names are not case-sensitive. The domain name can be up to 60 bytes long (including suffixes .com, .net, .org, etc.). /^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0- 9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i; /content/i forms a case-insensitive regular expression; ^ match starts $ End of match [a-z] E-Mail prefix must start with an English letter ([a-z0-9]*[-_]?[a-z0-9]+)* matches _a_2, aaa11, _1_a_2, but does not match a1_, aaff_33a_, a__aa. If it is a null character, it will also match , * means 0 or more. * represents 0 or more preceding characters. [a-z0-9]* matches 0 or more English letters or numbers [-_]? Matches 0 or 1 "-", because "-" cannot appear consecutively [a-z0-9]+ matches 1 or more English letters or numbers, because "-" cannot be used as the end @ There must be one @ ([a-z0-9]*[-_]?[a-z0-9]+)+ see above ([a-z0-9]*[-_]?[a-z0-9]+)* Explanation, but it cannot be empty, + means one or more. [.] Treat special characters (.) as normal characters [a-z]{2,3} matches 2 to 3 English letters, usually com or net, etc. ([.][a-z]{2})? Matches 0 or 1 [.][a-z]{2} (such as .cn, etc.) I don’t know if the last part of .com.cn is usually two digits If not, please change {2} to {starting word count, ending word count} 2. Extract the email in the string:
Output result:
3, comparison: the first one is not included in the regular expression in the second one ^and$; Let’s introduce these, I hope it will be helpful for everyone to learn PHP regular rules. Programmer's Home, I wish you all the best in your studies and progress. |