文档章节

PHP正则表达式中常见函数的简单使用---一

雨醉风尘
 雨醉风尘
发布于 2015/08/19 23:23
字数 746
阅读 132
收藏 4
<?php
$pattern='/[0-9]/';                                           //定义匹配的模式
$subject='weuyr3ui76as83s0ck9';                 //定义需匹配的对象
$m1=$m2=array();                                          //初始化两个空数组
$num1=preg_match($pattern, $subject, $m1);         //将匹配的结果赋予空数组$m1
$num2=preg_match_all($pattern, $subject, $m2);   //将匹配的结果赋予空数组$m2
show($m1); 
echo "<hr />";
show($m2);
echo "------------------------------------------<br/>";
echo "函数preg_match()匹配的结果数为".$num1;
echo "<br/>函数preg_match_all()匹配的结果数为".$num2;

//定义一个匹配结果展示的函数
function show($var=null){
if(empty($var)){
echo "null";
}elseif(is_array($var) || is_object($var)){
echo "<pre>";
print_r($var);
echo "</pre>";
}else{
echo $var;
}
}
?>

小结:preg_match()只会匹配出符合模式的第一个元素

          preg_match_all()会匹配出符合模式的所有元素

NO A PIC YOU SEE A XXX

//执行结果如下图

//***************************************************************************************

2-----字符串替换函数preg_replace()与preg_fileter()的使用

//第一段代码是字符串的匹配替换  第二段代码是数组的匹配替换(一一对应)

代码段1:

<?php
$pattern='/[0-9]/';                                           //需替换的元素
$subject='weuyr3ui76as83s0ck9';
$replace="测试";                                             //替换后的元素
$rest1=preg_replace($pattern, $replace, $subject);     
$rest2=preg_filter($pattern, $replace, $subject);  

show($rest1);       //output---weuyr测试ui测试测试as测试测试s测试ck测试
echo "<hr />";
show($rest2);      //output---weuyr测试ui测试测试as测试测试s测试ck测试

//定义一个匹配结果展示的函数
function show($var=null){
if(empty($var)){
echo "null";
}elseif(is_array($var) || is_object($var)){
echo "<pre>";
print_r($var);
echo "</pre>";
}else{
echo $var;
}
}
?>

代码段2

<?php
$pattern=array('/[012345]/','/[6789]/');        //0到5用 “测” 替换,6到9用 “试” 替换 
$subject='weuyr3ui76as83s0ck9';               
$replace=array('测','试');                
$m1=$m2=array();                                          
$rest1=preg_replace($pattern, $replace, $subject);        
$rest2=preg_filter($pattern, $replace, $subject);  

show($rest1);    //输出---weuyr测ui试试as试测s测ck试                      
echo "<hr />";   //输出---weuyr测ui试试as试测s测ck试
show($rest2);

//定义一个匹配结果展示的函数
function show($var=null){
if(empty($var)){
echo "null";
}elseif(is_array($var) || is_object($var)){
echo "<pre>";
print_r($var);
echo "</pre>";
}else{
echo $var;
}
}
?>

也许到这里你会觉得这两函数的执行效果是一样的啊,没班毛线的区别啊,No,当,替换的原始对象是也是一个数组时会是什么情况呢?

<?php
$pattern=array('/[012345]/','/[6789]/');                                         
$subject=array('weuy','r3ui','76as','83s','0ck9');               
$replace=array('测','试');                
$m1=$m2=array();                                          
$rest1=preg_replace($pattern, $replace, $subject);        
$rest2=preg_filter($pattern, $replace, $subject);  
show($rest1); 
echo "<hr />";
show($rest2);
//定义一个匹配结果展示的函数
function show($var=null){
if(empty($var)){
echo "null";
}elseif(is_array($var) || is_object($var)){
echo "<pre>";
print_r($var);
echo "</pre>";
}else{
echo $var;
}
}
?>

结果如下图

说明:前者是preg_replace()函数,不和服替换条件会原样输出-----------5个元素

           后者是preg_filter()函数,不符合提交的会被过滤掉------------------4个元素


函数preg_grep()将符合模式的元素查找出来

<?php
$pattern='/[0-9]/';                                           //定义匹配的模式
$subject=array('weuy','r3ui','76as','83s','0ck9');                                                              
$rest1=preg_grep($pattern, $subject);         
show($rest1); 
//定义一个匹配结果展示的函数
function show($var=null){
if(empty($var)){
    echo "null";
}elseif(is_array($var) || is_object($var)){
echo "<pre>";
print_r($var);
echo "</pre>";
}else{
echo $var;
}
}
?>

//*******************************

运行结果

Array
(
    [1] => r3ui
    [2] => 76as
    [3] => 83s
    [4] => 0ck9
)

//******************************

© 著作权归作者所有

共有 人打赏支持
雨醉风尘
粉丝 3
博文 106
码字总数 23692
作品 0
海淀
程序员
私信 提问
[python爬虫] 正则表达式使用技巧及爬取个人博客实例

这篇博客是自己《数据挖掘与分析》课程讲到正则表达式爬虫的相关内容,主要简单介绍Python正则表达式爬虫,同时讲述常见的正则表达式分析方法,最后通过实例爬取作者的个人博客网站。希望这篇...

Eastmount
2017/10/18
0
0
在PHP中使用正则表达式进行查找替换

首先需要声明的是,其实我对正则的应用也不是特别地熟练,只不过是在工作中“被逼无奈”才一步步地对正则有了一些了解。随着对正则的了解越多,越来越发现正则表达式真的是一个很强有力的工具...

技术小胖子
2017/11/15
0
0
一言不合就学习:PHP优秀学习文章资料汇总整理

发现一个不错的网站,DevStore,移动互联网企业运营解决方案整合平台,产品前期-设计阶段-开发测试-推广阶段-运维运营,各个阶段都有涉及。 下面整理一些针对包括程序员、运营、设计师等在内...

FrancisSoung
2016/08/25
0
0
PHP 正则表达式匹配 preg_match 与 preg_match_all 函数

正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正则表达式匹配相应的内容 正则替换:根据正则表达式匹配内容并替换 正则分割:根据正则表达式分割字符串 在...

ywppengpeng
2016/11/14
2
0
Python3网络爬虫——(5)正则表达式(re模块)

一、正则表达式 1、正则表达式是字符串搜索引擎 Python正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些字符的组合,组成一个“规则字符串”,这个“规则字...

飞天小橘子
04/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

磁饱和

定义 磁饱和是磁性材料的一种物理特性,指的是导磁材料由于物理结构的限制,所通过的磁通量无法无限增大,从而保持在一定数量的状态。 举例说明 假定有一个电磁铁,通上一个单位电流的时候,...

colinux
17分钟前
1
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
1
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部