当前位置: 首页 > 后端技术 > PHP

判断一个字符串是否包含中文、英文和数字

时间:2023-03-29 19:17:15 PHP

一直不太擅长正则表达式,所以有必要记录一下。正则表达式基础知识行定位符(^和$)行定位符用于描述字符串的边界。“$”表示行尾,“^”表示行首,如“^de”表示以de开头的字符串“de$”表示以de结尾的字符串。单词定界符我??们在找单词的时候,如果an存在于字符串“grilandbody”中,很明显如果匹配的话,an一定能够匹配到字符串“grilandbody”。如何?让它匹配单词,而不是单词的一部分?这时候,我们可以用一个单词分隔符b。如果banb匹配“grilandbody”,会提示无法匹配。当然,还有一个大写的B,意思是正好是b的反义词。它匹配的字符串不能是一个完整的单词,而是其他单词或字符串的一部分。比如班布。选择字符(|)表示或选择字符表示或。例如,Aa|aA表示Aa或aA。注意使用“[]”和“|”的区别是“[]”只能匹配单个字符,而“|”可以匹配任意长度的字符串。使用“[]”时,常与连接符“-”连用,如[a-d],分别代表a或b或c或d。Excludecharacters,exclude操作正则表达式提供“^”表示排除不匹配的字符,^一般放在[]中。如1,该字符不是1~5之间的数字。Qualifier(?*+{n,m})限定符主要用来限制每个字符串出现的次数。限定字符的含义?零次或一次*零次或多次+一次或多次{n}n次{n,}至少n次{n,m}n到m次/x表示十六进制/u表示按unicode(utf-8)匹配(主要针对汉字等多字节)/i表示不区分大小写(如果表达式中有a,那么A也是匹配对象)/s表示把字符串当成单行来匹配必须只有中英数字$match="/^[\x{4e00}-\x{9fa5}A-Za-z0-9]+$/u";if(!preg_match($match,$title)){echo"包含中文、英文、数字以外的字符";}else{echo"只包含中文、英文、数字以外的字符";}只需要包含中文、英文和数字$match="/[\x{4e00}-\x{9fa5}A-Za-z0-9]/u";if(!preg_match($match,$title)){echo"不包含中英文数字字符";}else{echo"包含中文、英文、数字字符”;}参考文章:http://www.jb51.net/article/6...http://www.cnblogs.com/helloh...1-5?