php正则表达式元字符及匹配顺序
* 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
//如下面匹配的前面的"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
上一篇:php正则表达式模式修正符
下一篇:php正则表达式原子及元子表