php正则表达式(1)2011/9/10
正则表达式的主要作用:分割、匹配、查找、替换
Php中两个常用的两个正则函数:
1. preg_match 正则函数,以perl语言为基础
preg_match ( mode, string subject , array matches )
2. ereg 正则函数,以POSIX基础 (Unix 、 Script)
ereg ( mode, string subject , array regs )
正则表达式中的元素:
1. 原子(普通字符:a-z A-Z 0-9 、原子表、 转义字符)
2. 元字符 (有特殊功能的字符)
3. 模式修正符 (系统内置部分字符 i 、m、S、U…)
正则表达式中的原子:
1. a-z A-Z _ 0-9 //最常见的字符
2. (abc) (skd) //用圆括号包含起来的单元符号,即必须有abc和skd才能匹配
3. [abcs] [^abd] //用方括号包含的原子表,即只要[]中的任何一个字符就能匹配,原子表中的^代表排除或相反内容
4. 转义字符(很多,用到时可以上网查看)
<?php
header("Content-Type:text/html;charset=UTF-8");
$mode="/m(a)(chinese)(s)/";//作为一个整体来匹配,放入内存中
$mode1="/I[abc]/";//只要其中一个匹配就行
$mode2="/[^abc]/";//除了[]内的才能匹配
$str="Iamachineses Ib ";
//preg_match() 在第一次匹配之后将停止搜索,所以只能输出一个匹配
if(preg_match($mode,$str,$arr))
{
echo "匹配成功".$arr[0]."<br/>";
}
else
{
echo "匹配不成功"."<br/>";
}
//preg_match_all()是会一直搜索到$str的结尾处
if(preg_match_all($mode1,$str,$arr))
{
echo "匹配成功"." ";
print_r($arr);
echo "<br/>";
}
else
{
echo "匹配不成功"."<br/>";
}
if(preg_match($mode2,$str,$arr))
{
echo "匹配成功".$arr[0]."<br/>";
}
else
{
echo "匹配不成功"."<br/>";
}
运行结果:
匹配成功machineses
匹配成功 Array ( [0] => Array ( [0] => Ia [1] => Ib ) )
匹配成功I