码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式基础知识

时间:2015-12-24 14:59:29      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

      正则表达式几乎上编程语言上面都有自己的一席之地,由于最近在看一些国外大神的源代码中多处用到了正则表达式,对于正则表达式,自己也使用的不多,难免感觉到生涩,所以最近查了很多资料,让自己对正则表达式有有些许的理解。

  1:正则表达式的定义

    当使用PCRE函数的时候,需要使用分隔符将模式括起来。分隔符可以是除下列字符以外的其他字符:字母或数字,反斜杠,空白字符(non-alphanumeric, non-backslash, non-whitespace),经常使用的分隔符有:斜杠(/,forward slash),井号(#,hash sign)和波浪号(~,tilde)。下面是一些有效的模式

 

/foo bar/   
#^[^0-9]$#
+php+   
%[a-zA-Z0-9_-]%

 

  2:正则表达式中的特殊字符需要进行转义,也就是在每个特殊字符前加上反斜杠(\),特殊字符如下

.:匹配除“\n”之外的任何单个字符
\:将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符
+:匹配前面的子表达式一次或者是多次
*:匹配前面的子表达式零次或者是多次
?:匹配前面过的子表达式零次或者是一次
[]:字符集合。匹配所包含的任意一个字符
{}:匹配确定的n次
(pattern):匹配pattern并获取这一匹配
^:匹配输入字符串的开始位置
$:匹配输入字符串的结束位置
-:通常用于[0-9],表示匹配0到9这个范围内的任意一个数字
|:表示或的关系
还有>、<、
(?:pattern):匹配pattern,但是不捕获内容

  3:结合[]、()和?:进行URL的解析

 

$pattern = ‘~http\://((?:[\w]*\.?)+)((?:/[\w|\d]*)*)\?((?:[\w|\d]*\=[\d|\w]*&?)*)~x‘;
$str = "http://framework.easy.com/user/local?name=tom&age=10";

preg_match_all($pattern,$str,$matchs,PREG_SET_ORDER | PREG_OFFSET_CAPTURE );

echo "<pre>";
print_r($matchs);
echo "</pre>";

/**
**     结果   
**/
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => http://framework.easy.com/user/local?name=tom&age=10
                    [1] => 0
                )

            [1] => Array
                (
                    [0] => framework.easy.com
                    [1] => 7
                )

            [2] => Array
                (
                    [0] => /user/local
                    [1] => 25
                )

            [3] => Array
                (
                    [0] => name=tom&age=10
                    [1] => 37
                )

        )

)

 

 

 

 

正则表达式基础知识

标签:

原文地址:http://www.cnblogs.com/axunz/p/5072877.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!