php正则表达式 preg_replace替换 入门教程
代码如下 | 复制代码 |
$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 = str_replace('>',">",$str); return trim($str); |
单引号和双引号大体相同,但有一点非常重要,,就是变量引用问题 ,你把下面代码运行即可明白了
代码如下 | 复制代码 |
<?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 |
//方法一
$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;
}
}
相关文章
- 取双引号内的内容我们如果一个字符串中只有一个可以使用explode来获得,但如果有多个需要使用正则表达式来提取了,具体的例子如下。 写程序的时候总结一点经验,如何只...2016-11-25
- 这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
- 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
- 正则表达式是一门非常有用的并且进行模糊判断的一个功能了,我们下面来看通过正则来验证输入汉字、英语、数字,具体如下。 收藏了正则表达式。可以验证只能输入数...2016-11-25
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
- 常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
- 网址规则是可寻的,所以我们可以使用正则表达式来提取字符串中的url地址了,下面一起来看看小编整理的几个PHP正则表达式匹配验证提取网址URL实例. 匹配网址 URL 的...2016-11-25
- 这篇文章给大家详细介绍了JS中使用正则表达式g模式和非g模式的区别,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2017-04-03
- 这篇文章主要介绍了正则表达式中两个反斜杠的匹配规则,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
- 本文主要介绍了JavaScript利用正则表达式替换字符串中内容的具体实现方法,并做了简要注释,便于理解。具有一定的参考价值,需要的朋友可以看下...2017-01-09
- 这篇文章主要介绍了C#正则表达式使用方法,大家参考使用...2020-06-25
- 这篇文章主要介绍了C#线程入门教程之单线程介绍,本文讲解了什么是进程、什么是线程、什么是多线程等内容,并给出了一个单线程代码示例,需要的朋友可以参考下...2020-06-25
- c#正则表达式,用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。...2020-06-25
- 这篇文章主要介绍了python正则表达式常用函数及使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-07
- 这篇文章给大家介绍了Idea使用正则表达式批量替换字符串的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-07-21
- 今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是总结一下,分享的同...2015-11-08
- 正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧...2020-06-25
- 这篇文章主要给大家介绍了关于利用Python验证的50个常见正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-11
- 这篇文章主要介绍了C#运算符和表达式,这是自学C#编程的第五篇,希望对大家的学习有所帮助。...2020-06-25
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06