php正则表达式元字符及匹配顺序

时间: 2009-04-20  分类: 正则  收藏
    0次或多次匹配他前面的原子
           //如下面匹配的前面的"o";
           //如 "/go*gle/" 可与ggle和gogle和gooogle等匹配;
+    1次或多次匹配其前面的原子;

?     0次或1次匹配其前面的原子;

.      匹配除换行符外任何一个字符;
           //如 "/go.gle/" 可与gg2le和goagle和go gle等匹配;

|     匹配两个或多个选择;
           /*如 "/one|two|three|four|five|six"/
                                         *可以与fdnifeone
                                         *或dfktwodfi
                                         *或efnfivefi
                                         *匹配;
                       *里面包含任何一个都能匹配;*/
^     必需以此开头才可匹配;如/^abc/ 必需以abc开头才匹配;

$     必需以些结尾才可匹配;

\b     匹配单词的边界;需要有一个边界(空格或其他符号);
             //如 "/is\b/" 可以和is sdhk或is inni匹配;
             //如 "/\bis\b/" 可以和diefm is fdik匹配;

\B     匹配单词边界以外的部分;

{m}     表示其前原子恰好出现m次;
             //如: "/go{3}gle/" 则"只"于gooogle匹配;
             //其中"o"必需要3次;

{m,n}     表示其前原子至少出现m次,最多n次;

{m,}     表示其前的原子出现不少于m次;

()         括号里面内容"整体"表示一个原子;
                 例:
               //用"+"的正则,
               // "/dog+/" 可以与dogg或doggg匹配;
               //而把前面括起来;则dog整个为一个原子;
               // "/(dog)+/" 与dogdog匹配为:dogdog;
                             //与doggg匹配为dog;这里匹配部分

模式匹配的顺序 从左到右
   1.模式单元 () 1
   2.重复匹配 ? * + {} 2
   3.边界匹配 ^ $ \b \B 3
   4.模式选择 | 4
分享到:

评论

昵 称: