目录
1、php正则表达式……..…………………………………………………………………………..3
1、Php正则表达式
1.1、概念:
描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
1.2、应用范围:
表单验证、数据验证、字符替换等。如判断某个邮件地址是否正确。
所有的语言,如php、java、.net、javascript等都支持正则表达式。
1.3、写法:
“/expression/”
1.4、两个函数:
字符匹配:ereg()、preg_match()
1)、如果匹配返回1,也就是true;否则返回0,也就是false
2)、preg_match()是ereg()的替代方案,preg_match()速度更快。
$aa=preg_match("/hi/","fdfhi ,china");
echo $aa; // 1
字符替换:ereg_replace()、preg _replace()
echo preg_replace(“/hi/i”,“zuoyefeng”,“HI ,china php”);
//zuoyefeng ,czuoyefengna php
i表示不区别大小写
1.5、元字符列表:
1)“^” 插入符
/^first/ 表示检测字符串是否以 first 开头
2)“$” 美元符
/end$/ 表示检测字符串是否以 end 结尾
3)”.” 点号。点号是用来匹配除了换行符之外的任意字符
/e.d/ 表示检测字符串是否匹配字符e加一个任意字符和字符d
4)”-” 短横线。短横线被称为范围界定字符
/[0-9]/ 表示字符串是否匹配任何数字 [^0-9] 非数字
5)”|” 管道元字符
/(a|b)/ 表示字符串含有字符a或字符b
6) { n,m }
这里的n和m都是正整数。匹配至少n个最多m个前面的字符。
例如:/a{ 1,3 }/不匹配“andy”中的任何字符,但匹配“candy,”中的‘a’,“caandy,” 中的前面两个。
\w
意义:匹配所有的数字和字母以及下划线,等价于[A-Za-z0-9_]。
例如:/w/匹配"apple,"中的'a',".28,"中的'5'和"3D."中的'3'。
\W
意义:匹配除数字、字母外及下划线外的其它字符,等价于[^A-Za-z0-9_]。
例如:/W/或者/[^$A-Za-z0-9_]/匹配“50%.”中的‘%’。
\d
匹配一个数字字符。等价于 [0-9]。
\D
匹配一个非数字字符。等价于 [^0-9]。
$pattern = “/aa/i”; i表示不区别大小写
\n 意义:匹配一个换行符
\r 意义:匹配一个回车符
1.6、手机验证:
<?php
$tel="13904459898";
$ab=preg_match("/^13[0-9]{9,9}$/",$tel);
/*
说明:
^表示这符开始(元字符)
$表示字符结尾(元字符)
13为普通字符
[0-9]表示一个0-9的数字
{9} 表示匹配9次
表意:
后面的号码,如果是13开头的,中间有9个数字,并结尾,则符合条件
*/
1.7、邮箱验证:
function checkmail()
{
$str=$_POST["mail"];
$check=preg_match(“/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]{2,4}$/",$str);
if($check)
echo "邮件地址正确";
else
echo "<font color=red>邮件不正确!</font>";
}