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
 
                     
                    
                 
                    
                 
 
                
            
        