php正则表达式,PHP正则表明式学习笔记整理

趁今儿深夜还不怎么勤快再整治一下,免得放假一打动啥事都抛脑后了。

更周到的实例,能够参照他事他说加以考察
最常用的PHP正则表明式搜集整理

更宏观的实例,能够参见
最常用的PHP正则表达式搜聚整理
php正则表达式,PHP正则表明式学习笔记整理。//www.jb51.net/article/14049.htm

正则表达式的显要职能:分割、匹配、查找、替换

 

php 正则表明式小结

php 正则表明式小结
//www.jb51.net/article/19831.htm

Php中多个常用的七个正则函数:

百度文库的先来个:

PHP 正则表明式的几则使用本领

PHP 正则表明式的几则利用技巧
//www.jb51.net/article/19832.htm

1.       preg_match
**
正则函数,以perl语言为根基**

php正则(一):
1.正则的介绍和功力;
   描述复杂法则字符串的须求,首要作用:分割、匹配、查找、替换;

以下内容为php中常用的正则,正则是一门通用性的语法,可以在网络下载更周全的正则,提供就学!
作用:分割,匹配,查找,替换

以下内容为php中常用的正则,正则是一门通用性的语法,能够在互连网下载更完美的正则,提供学习!
作用:分割,匹配,查找,替换

preg_match (
mode, string
subject , array matches )

2.php中八个常用的正则函数;
   正则函数:
       preg_match:(mode、stringsubject、array
matches);//perl语言为底蕴,应用较标准,试行不慢;
          参数表明:mode:正则模块;
                stringsubject:正则内容;
            matches:正则的结果;//会有再一次的数码;
       ereg:(mode、stringsubject、array regs);
          参数表达:regs正则的结果;
      上述多个正则都会重临boolen值;

1,php中四个常用的正则函数

1,php中七个常用的正则函数


3.正则表明式中涵盖的要素;
    1)原子:最小的单位,正则,至少含有贰个原子;
           内容:普通字符、原子表、转义字符、a-zA-Z0-9;
    2)元字符:(有非常意义的字符,成分的特出和筛选);
    3)形式修饰符:(系统内置的特殊字符,扩张正则的本来功效);

preg_match(mode,string subject,array matches);

preg_match(mode,string subject,array matches);

 

4.正则表明式中的原子;     1)a-zA-Z_0-9    //常见字符;
    2)(abc)(skd)    //单元符合,括号内的成分会作为是三个故事情节;
    3)[abcd][^abd]  //原子表,^表示免除或许相反的开始和结果;^:ctrl符;
    4)转义字符:
       \d:    [0-9];
       \D:    [^0-9];
       \w:    [a-zA-Z_0-9];常见字符相称;
       \W:    [^a-zA-Z_0-9];特别见字符;
       \s:    空格、回车、制表符;
      
preg_match(‘#abc#’,’adjskjdacbabcasds’,$arr);//须求有始发和得了符,多少个一样的就能够;
       ereg(‘abc’,’adjskjdacbabcasds’,$arr);//无需开头和终结符;
       实例:
          if(preg_match(‘abc’,’adjskjdacbabcasdsabch’,$arr)){
                echo”相配成功”.$arr[0];
                }else{
                echo”相称战败”;
                     }
          $mode=’/ads/’;//元字符的非常;
      $mode=’/(99)/’;//以99为单位的相配;
      $mode=’/[98]/’相称9和8有一个就能够相称成功;
      $mode=’/[^98]/’相配除了9和8以外的全数内容;
      $mode=’/\d/’  匹配数字的原子表;

mode —模块,正则的语法
subject —正则内容
matches —正则的结果

mode —模块,正则的语法
subject —正则内容
matches —正则的结果

2.       ereg **正则函数,以POSIX基础 (Unix 、
Script)**

php正则(二):正则表达中的元字符;   能够精晓为特殊符号或然运算符号;
  *  相配前一个内容0次,一回照旧频仍;
  . 
相称内容的0次1次或频仍,除了回车、换行以外的自由字符;(.*):任何字符;
  +  相称前多少个剧情1次依旧频仍;
  ? 相配前八个内容的0次依然1次;
  |  采用非常;(后边和前面内容当成全部操作)
  ^  匹配字符串首部内容;
  $  相称字符串尾巴部分内容;
  \b 相配单词边界,边界能够是空格可能特殊符号;
  \B 相称除带单词边界以外的剧情;
  {m}相配前边内容重复M次;
  {m,}相称前面内容重复次数抢先m次;
  {m,n}匹配前边内容重复次数在于m、n之间;
  ()合併全部合营,放入内部存款和储蓄器,可采取\1\2每家每户获得;
 
$mode=’/go*gle/’;*前方的o是用作相称的功能符管理的,而不作为数据的来得;
  $mode=’/\bis\b/’;is前后都有分隔符;
  $mode=’/p{5,}/’;匹配5次以上;

ereg(mode,string subject,array regs);

ereg(mode,string subject,array regs);

 ereg ( mode, string subject , array regs )

 

上述两个函数再次回到的为true或flase。

如上多个函数重临的为true或flase。


============================================================================================================================

2,正则表明式包罗的要素

2,正则表达式富含的因素

 

相见过的正则函数。

一,原子(普通字符:a-z,A-Z,0-9,原子表,转义符)
二,元字符(有特殊效果的字符)
三,情势修政符(系统内置部分字符i,m,S,U…)

一,原子(普通字符:a-z,A-Z,0-9,原子表,转义符)
二,元字符(有极其功效的字符)
三,格局修政符(系统内置部分字符i,m,S,U…)

正则表明式中的成分:

相配form中的name并给它附上默许的value:

3,正则表明式中的“原子”

3,正则表明式中的“原子”

1.       原子(普通字符:a-z A-Z 0-9 、原子表、
转义字符)

 

一,a-z A-Z_0-9 //最普及的字符
二,(bfw)(sda) //用圆括号包罗起来的单元符号,一个括号表示三个完完全全
三,[sdwe][^mjnb]
//用方括号包涵起来的原子表,原子表中^代表排除或相反内容
四,转义字符
\d 包含全数的数字[0-9]
\D 除全数数字外[^0-9]
\w 包蕴全体德文字符[a-zA-Z_0-9]
\W 除全体拉脱维亚语字符外[^a-zA-Z_0-9] —–相配特殊字符
\s 包涵空白区域 如回车,换行,分页等[\f\n\r]

一,a-z A-Z_0-9 //最常见的字符
二,(bfw)(sda) //用圆括号包涵起来的单元符号,四个括号表示三个完全
三,[sdwe][^mjnb]
//用方括号包罗起来的原子表,原子表中^代表排除或相反内容
四,转义字符
\d 满含全体的数字[0-9]
\D 除全体数字外[^0-9]
\w 富含全部德语字符[a-zA-Z_0-9]
\W 除全部匈牙利(Hungary)语字符外[^a-zA-Z_0-9] —–相配特殊字符
\s 满含空白区域 如回车,换行,分页等[\f\n\r]

2.       元字符 (有优异成效的字符)

function getInput($post_form,&$rpost_data){    preg_match_all("/<input .*>/isU",$post_form,$inputarr);      //print_r($inputarr);exit;   foreach($inputarr[0] as $input_o){       preg_match('/ name=["\'](.*)["\'].* value=["\'](.*)["\'][^<]*>/isU',$input_o,$return);    if(!empty($return[1])){     $param_name=$return[1];     $rpost_data[$param_name] =  $return[2];        }else{     preg_match('/ value=["\'](.*)["\'].* name=["\'](.*)["\'][^<]*>/isU',$input_o,$return);      if(!empty($return[2])){// halina 2011-9-30     $param_name=$return[2];     $rpost_data[$param_name] =  $return[1];      }else{      preg_match('/ name=["\'](.*)["\'][^<]*>/isU',$input_o,$return);      if(!empty($return[1])){// halina 2011-10-8      $param_name=$return[1];      $rpost_data[$param_name] ='';       }        }    }    if(strrpos($input_o,'checkbox')){     preg_match('/ name=["\'](.*)["\'][^<]*>/isU',$input_o,$return);        if(!empty($return[1])){      $param_name=$return[1];      $rpost_data[$param_name] ='on';       }        }       }        return $rpost_data;     }

当然前提要自己匹配form。

4,正则表达式元字符

4,正则表明式元字符

3.       格局修正符
(系统内置部分字符 i 、m、S、U…)


* 相称前一个剧情的0次或频仍
. 相配内容的0次或频繁,但不含有回车换行

* 匹配前一个内容的0次或频仍
. 匹配内容的0次或频仍,但不分包回车换行


  • 相称前多少个剧情的1次或频仍
    ? 相称前多少个内容的0次或1次
    | 选用同盟,类似php中||的用法
    ^ 相称字符串首部的开始和结果
    $ 相称字符串尾巴部分内容
    \b 相称单词边界,边界可以是空格可能特殊符号
    \B 相称除带单词边界的古怪内容
    {m} 相称前二个内容的再度次数为m次
    {m,} 相配前一个剧情的双重次数超越等于m次
    {m,n} 相称前多个内容的重新次数m次到n次
    () 合并全体特别,并放入内部存款和储蓄器,可应用\\1\\2各种得到调用
  • 匹配前贰个内容的1次或频仍
    ? 相配前叁个内容的0次或1次
    | 选拔合营,类似php中||的用法
    ^ 相称字符串首部的原委
    $ 相称字符串后面部分内容
    \b 相配单词边界,边界能够是空格或然特殊符号
    \B 相称除带单词边界的意想不到内容
    {m} 相称前二个内容的再一次次数为m次
    {m,} 相称前二个故事情节的双重次数当先等于m次
    {m,n} 相配前三个内容的重新次数m次到n次
    () 合併全体相当,并归入内部存款和储蓄器,可应用\\1\\2逐项获得调用

 

5,正则表明式中的 形式改正符
(1)运算顺序
坚守从左到右的的演算法规

5,正则表达式中的 情势革新符
(1)运算顺序
按部就班从左到右的的演算法则

正则表明式中的原子:

()圆括号是最高的 第一事先级
* ? + {} 重复相称内容 为第二前期级
^ $ \b 边界管理 为第三优先级
| 条件管理 为第四
提及底遵照运算顺序总括相配

()圆括号是最高的 第一预先级
* ? + {} 重复相配内容 为第二事先级
^ $ \b 边界管理 为第三初期级
| 条件管理 为第四
最后遵照运算顺序总结相配

1.       a-z A-Z _ 0-9 
//**
最普及的字符**

(2)形式校正符

(2)格局考订符

2.       (abc) (skd) 
//**
用圆括号包罗起来的单元符号,即必须有abc和skd工夫相称**

是为正则表明式巩固和补充的一个功效,使用在正则之外

是为正则表明式加强和增加补充的多个意义,使用在正则之外

3.       [abcs] [^abd]
//**
用方括号满含的原子表,即只要[]中的任何二个字符就能够相配,原子表中的^代表排除或相反内容**

事例:/正则/U U就意味着三个情势校订符

事例:/正则/U U就代表三个格局改进符

4.       转义字符(相当多,用到时方可上网查看)

须臾间几个为php中常用的:(注意:区分轻重缓急写)
i 正则内容在格外时候不区分轻重缓急写(暗许是分别的)
m 在相配首内容照旧尾内容时候利用多行识别相称
s 将转义回车撤除是为单位相配如.相配的时候
x 忽略正则中的空白
A 强制从头初阶相配
D 强制$相配尾部任何内容\n
U
禁止贪mei相称,只盯住到前段时间的贰个相配符并终止,常用在搜聚程序的正则说明式

转眼多少个为php中常用的:(注意:区分轻重缓急写)
i 正则内容在极度时候不区分轻重缓急写(私下认可是分别的)
m 在相称首内容如故尾内容时候使用多行识别相配
s 将转义回车撤销是为单位相配如.相称的时候
x 忽略正则中的空白
A 强制从头初步相配
D 强制$匹配尾巴部分任何内容\n
U
禁止贪mei相配,只盯住到近日的一个相配符并停止,常用在采摘程序的正则表明式

 <?php

例子:

例子:

header(“Content-Type:text/html;charset=UTF-8”);

复制代码 代码如下:

复制代码 代码如下:

$mode=”/m(a)(chinese)(s)/”;//作为二个完好来协作,放入内部存款和储蓄器中

<?php
$pot=”/\d{1,4}(.*)\d{1,2}\\1\d{1,2}/”;
$cont=”2010-12-08″;
if(preg_match($pot,$cont,$arr)){
echo “相称成功”.$arr[0];
}else{
echo “相称不成事”;
}
?>

<?php
$pot=”/\d{1,4}(.*)\d{1,2}\\1\d{1,2}/”;
$cont=”2010-12-08″;
if(preg_match($pot,$cont,$arr)){
echo “匹配成功”.$arr[0];
}else{
echo “相称不成事”;
}
?>

$mode1=”/I[abc]/”;//只要当中叁个一双两好就行

6,全局匹配函数

6,全局相配函数

$mode2=”/[^abc]/”;//除了[]内的才具协作

preg_match_all(string pattern,string subject,array matches[,int
flags])

preg_match_all(string pattern,string subject,array matches[,int
flags])

$str=”Iamachineses Ib “;

重大成效:截取比较详细的源委,搜罗网页,解析文本
例子:

驷不如舌作用:截取相比详细的源委,搜罗网页,剖判文本
例子:

 

复制代码 代码如下:

复制代码 代码如下:

//preg_match() 在率先次相称之后将告一段落搜索,所以不得不输出一个相称

<?php
$str=”aaa<bbb>ccc<dddd>eee”;
$mode=”/<.*>/U”;

<?php
$str=”aaa<bbb>ccc<dddd>eee”;
$mode=”/<.*>/U”;

if(preg_match($mode,$str,$arr))

if(preg_match_all($mode,$str,$arr)){
echo “匹配成功”.print_r($arr);
}else{
echo “匹配不成功”;
}

if(preg_match_all($mode,$str,$arr)){
echo “相称成功”.print_r($arr);
}else{
echo “相配不成功”;
}

{

?>

?>

    echo “相配成功”.$arr[0].”<br/>”;

7,替换函数
preg_replace(mixed pattern,mixed replacement,mixed subject[,int
limit])

7,替换函数
preg_replace(mixed pattern,mixed replacement,mixed subject[,int
limit])

   

与str_replace字符串替换相比较,功能更抓牢大

与str_replace字符串替换相比较,功效更是有力

   

留神:1,替换内容能够是八个正则也可以是二个数组正则
2,替换内容能够经过核对符e来消除替换施行内容

注意:1,替换内容能够是二个正则也得以是五个数组正则
2,替换内容能够通过考订符e来缓和替换推行内容

}

用途:替换部分相比较复杂的原委上,也足以用于内容的转换上
例子:

用途:替换部分比较复杂的内容上,也能够用于内容的调换上
例子:

else

复制代码 代码如下:

复制代码 代码如下:

{

<?php
$str=”aaa<bbb>ccc<dddd>eee”;
$mode=”/<.*>/U”;
echo preg_replace($mode,”替换内容”,$str);
?>

<?php
$str=”aaa<bbb>ccc<dddd>eee”;
$mode=”/<.*>/U”;
echo preg_replace($mode,”替换内容”,$str);
?>

    echo “相配不成功”.”<br/>”;

例2:数组正则替换

例2:数组正则替换

}

复制代码 代码如下:

复制代码 代码如下:

//preg_match_all()是会间接搜索到$str的结尾处

<?php
$str=”aaa<bbb>ccc<dddd>eee”;
$mode=array(“/<bbb>/”,”/<dddd>/”);
$m=array(“/<yyy>/”,”/<mmmm>/”);

<?php
$str=”aaa<bbb>ccc<dddd>eee”;
$mode=array(“/<bbb>/”,”/<dddd>/”);
$m=array(“/<yyy>/”,”/<mmmm>/”);

if(preg_match_all($mode1,$str,$arr))

echo preg_replace($mode,$m,$str);

echo preg_replace($mode,$m,$str);

{

?>
例3:md5正则替换
<?php
$str=”密码1:bbb\n密码2:BBB”;
$mode=”/(bbb)/ie”;

?>
例3:md5正则替换
<?php
$str=”密码1:bbb\n密码2:BBB”;
$mode=”/(bbb)/ie”;

    echo “相配成功”.”  “;

//参数1为正则替换二回,如过2,那连前面包车型地铁大写b也正则相称了
//preg_replace($mode,”md5(\\1)”,$str,1);
echo preg_replace($mode,”md5(\\1)”,$str);
?>

//参数1为正则替换一回,如过2,那连前面包车型大巴大写b也正则相配了
//preg_replace($mode,”md5(\\1)”,$str,1);
echo preg_replace($mode,”md5(\\1)”,$str);
?>

    print_r($arr);

8,正则切割函数
preg_split(string pattern,string subject[,int limit[,int
flags]])

8,正则切割函数
preg_split(string pattern,string subject[,int limit[,int
flags]])

    echo “<br/>”;

透过正则表明式来切割相关内容,类似事先学过的explode切割函数,但explode只可以依照一种方法切割有局限性

因此正则表明式来切割相关内容,类似事先学过的explode切割函数,但explode只能依据一种办法切割有局限性

   

例子:

例子:

   

复制代码 代码如下:

复制代码 代码如下:

}

<?php
$str=”asd,sdsa,efsd,we。dce,sec”;
$mode=”/[,.。]/”;
$arr=preg_split($mode,$str);
for($i=0;$i<count($arr);$i++){
echo $arr[$i].”<br>”;
}
?>

<?php
$str=”asd,sdsa,efsd,we。dce,sec”;
$mode=”/[,.。]/”;
$arr=preg_split($mode,$str);
for($i=0;$i<count($arr);$i++){
echo $arr[$i].”<br>”;
}
?>

else

最常用的PHP正则表明式搜集整理 php
正则表明式小结 P…

你可能感兴趣的稿子:

  • 美高梅开户网址,赶过用的PHP正则表明式搜罗整理
  • 一般而言收罗整理php正则表达式(超过常规用)
  • PHP中过滤常用竹签的正则表明式
  • 修改月光博客网站中PHP常用正则表明式中出现的错误
  • PHP
    正则表明式常用函数使用小结
  • PHP一些常用的正则表达式字符的一部分调换
  • php下常用表单验证的正则表明式
  • 最常用的PHP正则表明式搜罗整理
  • [PHP]常用正则表明式搜集
  • PHP最常用的正则表明式

{

    echo “相配不成事”.”<br/>”;

}

if(preg_match($mode2,$str,$arr))

{

    echo “相配成功”.$arr[0].”<br/>”;

}

else

{

    echo “相称不成功”.”<br/>”;

}

运维结果:

特别成功machineses
协作成功 Array ( [0] => Array ( [0] => Ia [1]
=> Ib ) )
极其成功I

 


发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图