文档章节

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

雨醉风尘
 雨醉风尘
发布于 2015/08/19 23:23
字数 746
阅读 133
收藏 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
海淀
程序员
私信 提问
Swift 的正则表达式

我使用Swift有段时间了,但最让人郁闷的是它还不能支持正则表达式. 先要说的是,这确实是门新语言,我在网站上有注释 a radar (rdar://17257306 for Apple folks). 如果你也认同这一观点,请...

oschina
2014/06/14
2.4K
0
在PHP中使用正则表达式进行查找替换

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

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

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

Eastmount
2017/10/18
0
0
《PHP扩展学习系列》系列技术文章整理收藏

《PHP扩展学习系列》系列技术文章整理收藏 1PHP扩展之文本处理(二)——PCRE正则表达式语法10——后向引用 http://www.lai18.com/content/321526.html 2PHP扩展之文本处理(二)——PCRE正则...

开元中国2015
2015/07/11
165
0
java基础重点讲解,看了还不会找我(十三)

视频下载地址:https://download.csdn.net/download/xxfisgirlgad/10886817 ###14.01_常见对象(正则表达式的概述和简单使用) * A:正则表达式 * 是指一个用来描述或者匹配一系列符合某个语法规...

谢小芳是女神
2018/12/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 孤独到都和病毒发生了感情了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# 逃跑计划《一万次悲伤 (Live)》 《一万次悲伤 (Live)》- 逃跑计划 手机党少年们想听歌,请使劲儿戳(这里) 现在...

小小编辑
50分钟前
18
5
test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
3
0
Android webview热门组件agentweb:4.0.2无法自适应的问题

Android webview热门组件agentweb:4.0.2无法自适应的问题 //设置自适应屏幕,两者合用mAgentWeb.getAgentWebSettings().getWebSettings().setUseWideViewPort(true); //将图片调整到适合w...

Gemini-Lin
今天
5
0
如何维护一个自己的 golang doc 服务

本文内容是如何维护一个golang 在线的doc 服务。 1 什么是godoc ? godoc 是 golang 官方提供的文档生成工具, 2 为什么要有godoc ? 我们经常遇到一个问题,就是代码和文档不一致,线上代码版...

鼎铭
今天
5
0
js中的对象创建的模式以及继承模式

对象创建模式: 工厂模式 构造函数模式 原型模式 继承模式 原型式继承 寄生式继承 构造函数 原型式和构造函数的组合式(缺点:运行两次超类类函数,积累函数的属性被挂载在原型对象上和实例对...

莫西摩西
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部