php正则表达式 preg_replace替换 入门教程

 更新时间:2016年11月25日 15:10  点击:1463
 代码如下 复制代码
$mode = "/^[a-z][-_.]?[a-zd]*@[a-z0-9]+[.][a-z]{2,4}/i";
$str = "a12345@j111cn.net";
echo $str.'<hr>';
if(preg_match($mode, $str, $arr)){
echo 'succeed -- <font color=red>'.$arr[0];
}else{
echo 'failed';
}

 


d 包含所有数字[0-9]
d 除所有数字外[^0-9]
w 包含所有英文字符[a-za-z_0-9]
w 除所有英文字符外[^a-za-z_0-9]
s 包含空白区域如回车、换行、分页等 [fnr]


preg_match_all ( string pattern, string subject, array matches [, int flags] )
截取比较详细的内容,采集网页,分析文本

 代码如下 复制代码
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )


提示 1、替换内容可以是一个正则也可以是数组正则
2、替换内容可以通过修正符e来解决替换执行内容

 代码如下 复制代码
preg_split ( string pattern, string subject [, int limit [, int flags]] )

 

在php教程替换字符效率最高也是最简单字符替换函数str_replace($arr1,$arr2,$str)
实例一

 代码如下 复制代码
str_replace("iwind", "kiki", "i love iwind, iwind said");
将输出 "i love kiki, kiki said"

结果

即将 原字符串中的所有"iwind"都替换成了"kiki".str_replace是大小写敏感的,所以对你不能设想用 str_replace("iwind", "kiki",...)替换原字符串中的"iwind". str_replace还可以实现多对一

定义和用法
str_replace() 函数使用一个字符串替换字符串中的另一些字符。

语法
str_replace(find,replace,string,count)参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。

 

下面用一款

//-- 程序名称:strreplace()
    //-- 程序用途:替换变量中的非法字符
    //-- 传入参数:变量值
    //********************************************************

   

 代码如下 复制代码

 function strreplace($str){
      $str = strips教程lashes($str);
      $str = str_replace(chr(92),'',$str);
      $str = str_replace(chr(47),'',$str);
      $str = str_replace(chr(10).chr(13),"<br>",$str);
      $str = str_replace('<',"&lt;",$str);

      $str = str_replace('>',"&gt;",$str);
      $str = str_replace(';',";",$str);
      $str = str_replace('"',"“",$str);
      $str = str_replace("'","‘",$str);
      $str = str_replace(" "," ",$str);
      $str = str_replace("/**/"," ",$str);

      return trim($str);
    }

关于php中单引号与双引号区别有那些很,至于大家都说的下面我用我的理解来说说关于单引号与双引号的区别所在吧,单引号在其中间的变量是不被执行的,把变量当成了一个普通的字符串,而双引号php会去解析中间有变量没有,有的话解析变量,这样双引号在一些方法更费服务器资源。

单引号和双引号大体相同,但有一点非常重要,,就是变量引用问题 ,你把下面代码运行即可明白了

 代码如下 复制代码

<?php

$x="中国";

echo "我是$x人";//双引号

echo "<br />";

echo '我是$x人';//单引号

?>


变量用双引号括起来,单引号中的则不是(即单引号中的变量符号不解析)


单引号内部的变量不会执行

  双引号会执行

  如

 代码如下 复制代码

  $name = 'hello';

  echo "the $name";

  会输出 the hello

  而如果是单引号

 代码如下 复制代码

  $name = 'hello';

  echo 'the $name';

  会输出 the $name

  主要区别就是这个。


在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:

 代码如下 复制代码
echo "value = $foo";
echo "value = $a[$i]";

     而下面的代码却不能得到我们希望的结果:

echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。

     为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:

 代码如下 复制代码
echo 'value = ' . $a[$i][$j];

     还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了:

 代码如下 复制代码
echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素

     这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:

 代码如下 复制代码
$var = 3;
echo "value = {$var}"; // 打印结果 "value = 3"
echo "value = {$var}"; // 打印结果 "value = {3}"


看个实例

 代码如下 复制代码

$var1 = "chris mao";    //assign the value "chirs mao" to $var1
$var2 = &$var1;            //reference $var1 via $var2
echo '<b>the value of $var2 is: </b>', $var2, "<br>";  //$var2 and $var1 have the same value "chris mao"
$var2 = 'my name is $var2';  //modify $var2, the sametime $var1 was modified
echo '<b>the value of $var1 is: </b>', $var1, "<br>";  //the value of $var1 is "my name is $var2"
$var2 = "my new name is $var1";  //modify $var2, the sametime $var1 was modified
echo '<b>the value of $var2 is: </b>', $var2, "<br>";  //the value of $var1 is "my new name is my name is $var2"
echo '<b>the value of $var1 is: </b>', $var1, "<br>";  //the value of $var1 is "my new name is my name is $var2"

本文章收集了三种关于从字符串或文章内容中匹配url正则表达式的php代码,前二种函数是获取以域名为标题的http,后一种是匹配内容中的url地址并且保存到数组中哦。

//方法一

$ereg_str[url] =   "^[hh]{1}[tt]{2}[pp]{1}://[ww]{3}.[0-9a-za-z][0-9a-za-z-]{0,25}((.[a-za-z]{3,4})|(.[a-za-z]{2})){1,2}$ "; //判断一个合法的url
$pattern =   $ereg_str['url'];
if(ereg($pattern,$string)) echo   " <br> right! ";
else   echo   " <br> error! ";
}


//

$str[]   =   "http://www.111cn.net";

$pattern   =   '/^(http://)?www.[0-9a-z][0-9a-z-]{0,25}((.(aero|biz|cc|co|com|coop|edu|gov|info|int|mil|museum|name|nato|net|org|tv))?(.(af|aq|at|au|be|bg|br|ca|ch|cl|cn|de|eg|es|fi|fr|gr|hk|hu|ie|il|in|iq|ir|is|it|jp|kr|mx|nl|no|nz|pe|ph|pr|pt|ru|se|sg|th|tr|tw|uk|us|za))?){1}$/i ';

foreach($str   as   $key=> $val)
{
        $key++;
        if(preg_match($pattern,$val))
                echo   " <br> <font   color=green> right! </font>   ".$val;
        else
                echo   " <br> <font   color=red> error! </font>   ".$val;
}

//方法三

//匹配<a href="xxxxxx">yyyyyy</a>
"/<a.+hrefs*=s*['"]?([^s<'"]*)['"]?.*>([^</a>].*)</a>/i"

//匹配href="xxxxxx"
s*<[aa]{1}s*href="([^"]*)"s*>([^<]*)</1>

$reg = "<a[ss]*?(href)s*=s*(?(?=["'])((["'])(?<href>[^"']*)2)|(?<src>[^s>]+))[ss]*?>";

?>

这篇文章对于初学者来说比较有用了,是来告诉你php 定义二维数组与数组定义方法哦,定义一维数组很简单,方法也比较多,定义二级或多维数组也差不多,如下。

$array[] =1; //定义数组
$array = array(1); //定义数组

/*
php如何定义二维数组(多维数组)呢?

将一个一维数组的元素也定义为数组,就是一个二维数组,


$aa=array(0=>"dd",1=>"ff");
$bb=array(0=>"b1",1=>"b2");

$cc=array(0=>$aa;1=>$bb); 此时,$cc[0]也是一个数组,$cc[1]也是一个数组,$cc就是一个二维数组.
*/

//如何动态定义多维数组呢。

$obj = array(16=>16);
for($i=0;$i<16;$i++) {
 for($j=0;$j<16;$j++) {
  $obj[$i]=$j;
 }
}

[!--infotagslink--]

相关文章

  • PHP正则表达式取双引号内的内容

    取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
  • Lua语言新手简单入门教程

    这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
  • PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
  • php 验证只能输入汉字、英语、数字的正则表达式

    正则表达式是一门非常有用的并且进行模糊判断的一个功能了,我们下面来看通过正则来验证输入汉字、英语、数字,具体如下。 收藏了正则表达式。可以验证只能输入数...2016-11-25
  • java正则表达式判断前端参数修改表中另一个字段的值

    这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • PHP正则表达式匹配验证提取网址URL实例总结

    网址规则是可寻的,所以我们可以使用正则表达式来提取字符串中的url地址了,下面一起来看看小编整理的几个PHP正则表达式匹配验证提取网址URL实例. 匹配网址 URL 的...2016-11-25
  • JS中使用正则表达式g模式和非g模式的区别

    这篇文章给大家详细介绍了JS中使用正则表达式g模式和非g模式的区别,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2017-04-03
  • 正则表达式中两个反斜杠的匹配规则详解

    这篇文章主要介绍了正则表达式中两个反斜杠的匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • JavaScript利用正则表达式替换字符串中的内容

    本文主要介绍了JavaScript利用正则表达式替换字符串中内容的具体实现方法,并做了简要注释,便于理解。具有一定的参考价值,需要的朋友可以看下...2017-01-09
  • C#正则表达式使用方法示例

    这篇文章主要介绍了C#正则表达式使用方法,大家参考使用...2020-06-25
  • C#线程入门教程之单线程介绍

    这篇文章主要介绍了C#线程入门教程之单线程介绍,本文讲解了什么是进程、什么是线程、什么是多线程等内容,并给出了一个单线程代码示例,需要的朋友可以参考下...2020-06-25
  • 常用C#正则表达式汇总介绍

    c#正则表达式,用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。...2020-06-25
  • 一文秒懂python正则表达式常用函数

    这篇文章主要介绍了python正则表达式常用函数及使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
  • Idea使用正则表达式批量替换字符串的方法

    这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
  • PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
  • C# 中使用正则表达式匹配字符的含义

    正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧...2020-06-25
  • Python验证的50个常见正则表达式

    这篇文章主要给大家介绍了关于利用Python验证的50个常见正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-11
  • C#编程自学之运算符和表达式

    这篇文章主要介绍了C#运算符和表达式,这是自学C#编程的第五篇,希望对大家的学习有所帮助。...2020-06-25
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06