文档章节

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

雨醉风尘
 雨醉风尘
发布于 2015/08/19 23:23
字数 746
阅读 131
收藏 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
海淀
程序员
在PHP中使用正则表达式进行查找替换

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

技术小胖子
2017/11/15
0
0
[python爬虫] 正则表达式使用技巧及爬取个人博客实例

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

Eastmount
2017/10/18
0
0
Python3网络爬虫——(5)正则表达式(re模块)

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

飞天小橘子
04/04
0
0
PHP 正则表达式匹配 preg_match 与 preg_match_all 函数

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

ywppengpeng
2016/11/14
2
0
Python正则表达式操作指南

简介 Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emacs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因...

YHZhu
2010/07/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day96-20180923-英语流利阅读-待学习

英国王子也不看好人工智能,理由却和霍金不同 Daniel 2018-09-23 1.今日导读 2016 年 3 月 9 日至 15 日,世界围棋冠军李世石与谷歌研发的计算机围棋程序 AlphaGo 进行人机大战并以 1 比 4 ...

飞鱼说编程
36分钟前
1
0
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
41分钟前
24
0
Java -------- 首字母相关排序总结

Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa","CC","Ba","DD","ee","dd"}; Arrays.sort(strings); for (int i ...

切切歆语
43分钟前
1
0
还在用 Git 的 -f 参数强推仓库,你这是在作死!

最近,美国一个程序员因为同事不写注释,代码不规范,最严重的是天天使用 git push -f 参数强行覆盖仓库,该程序员忍无可忍向四名同事开抢,其中一人情况危急!!! 不写注释、代码不规范是一...

红薯
56分钟前
401
0
NPM报错终极大法

所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts$ npm...

lilugirl
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部