PHP正则表达式匹配替换与分割功能实例浅析

本文实例讲述了PHP正则表达式匹配替换与分割功能。分享给大家供大家参考,具体如下:

正则表达式在PHP中的作用主要包括:分割、匹配、查找与替换。

匹配功能

preg_match_all 全部匹配函数

preg_match_all (string pattern,string subject,array matches[, int flags]);

对结果的排序使 $matches[0] 为全部模式匹配的数组。

用途:截取比较精确的内容,用于采集网页,分析文本等。

替换功能

preg_replace 正则替换函数

preg_replace(mixed pattern,mixed replacement,mixed subject[, int limit]);

通过正则表达式来替换相关内容。

① 替换内容可以是一个正则也可以是数组;
② 替换内容可以通过修正符 e 来解决替换执行内容。

用途:替换一些比较复杂的内容,也可以将内容进行转换。

分割功能

preg_split 正则切割

preg_split(string pattern,string subject[, int limit[, int flags]]);

通过正则表达式来切割相关内容,类似 explode 切割函数,但 explode 只能以一种方式进行切割。

实例演示

匹配功能

以下为引用内容:

<?php
$str="标题:{title}内容:{content}";
$mode="/{(.*)}/U";
preg_match_all($mode,$str,$arr);
print_r($arr);
?>

输出:(在源文件中查看)

以下为引用内容:

Array
(
  [0] => Array
    (
      [0] => {title}
      [1] => {content}
    )
  [1] => Array
    (
      [0] => title
      [1] => content
    )
)

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • php+正则将字符串中的字母数字和中文分割

    如:$str="php如何将字 符串中322的字母数字sf f45d和中文_分割?";按数字或字母分割. 复制代码 代码如下: $str = "php如何将字 符串中322的字母数字Asf f45d和中文_分割?";$arr = preg_split("/([a-zA-Z0-9]+)/", $str, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);  print_r($arr); 结果 复制

  • php正则替换变量指定字符的方法

    本文实例讲述了php正则替换变量指定字符的方法.分享给大家供大家参考.具体如下: 这里介绍三种常用方法. 方法一: <?php $str = preg_quote('(银子)'); $txt = '我的呢称(银子)'; echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt); ?> 方法二: <?php $str = quotemeta

  • php正则表达匹配中文问题分析小结

    复制代码 代码如下: $str = '中华人民共和国123456789abcdefg'; echo preg_match("/^[u4e00-u9fa5_a-zA-Z0-9]{3,15}$",$strName); 运行一下上面这段代码,看会有什么提示信息? Warning: preg_match(): Compilation failed: PCRE does not support L, l, N, P, p, U, u, or X at offset 3 in F:wwwrootp

  • 如何在PHP中使用正则表达式进行查找替换

    1. preg_match - 执行一个正则表达式匹配int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )搜索subject与pattern给定的正则表达式的一个匹配. pattern:要搜索的模式,字符串类型.subject :输入字符串. matches:如果提供了参数matches,它将被填充为搜索结果. $matche

  • PHP正则替换函数preg_replace和preg_replace_callback使用总结

    在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:PHP函数preg_replace() 正则替换所有符合条件的字符串 应用举例如下: 复制代码 代码如下: <?php /**  * 模板解析类  */ class Template { public function compile($template) { // if逻辑   $template

  • PHP正则匹配图片并给图片加链接详解

    正则: 复制代码 代码如下: $newstext=preg_replace(preg_replace('/(<img[^>]+src\s*=\s*"?([^>"\s]+)"?[^>]*>)/im', '<a href="$2″>$1</a>', $newstext); 解说: 1.preg_replace和str_replace的区别: str_replace只是纯字符替换,而preg_replace才是正则替换

  • PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)

    本文实例讲述了PHP正则表达式基本用法.分享给大家供大家参考,具体如下: Demo1.php <?php //尝试着写第一个正则表达式 //第一个参数,表示模式(就是和字符串去比较,匹配) //第二个参数,表示字符串 //如果整个函数模式和字符串比较后匹配了,那么返回真(true)1,否则返回假(false)0 //什么叫匹配,就是一个一个的比较过去 //按照什么规则??按照模式来匹配 //只要模式全部通过,那么就通过 //匹配和相等是两个概念 //因为目前的模式是一个整体,php //所以,字

  • PHP匹配多行的正则表达式分析

    复制代码 代码如下: <table> <tr><td>aaaa</td></tr> <tr><td>bbbb</td></tr> <tr><td>cccc</td></tr> <tr><td>dddd</td></tr> </table> 像这种的文本,用PHP的正则表达式怎么匹配?? 我最初

  • PHP preg_replace() 正则替换所有符合条件的字符串

    需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的. 比如模版引擎解析模版.垃圾敏感信息过滤等等. 一般这种情况,我们用正则按我们的规则去匹配preg_match.替换preg_replace. 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少. 根据前面说的,两种场景:统计分析,用匹配:处理用替换. PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹

  • PHP匹配连续的数字或字母的正则表达式

    正则表达式的写法规则:"/规则需要写在2个斜杠中间/". (. :小数点)用于匹配除换行符之外的所有字符. (\s:反斜杠小写s)用于匹配单个空格符,包括tab键和换行符: (\S:反斜杠大写S)用于匹配除单个空格符之外的所有字符: (\d:反斜杠d)用于匹配从0到9的数字:也可以这样写:[0-9] (\w:反斜杠小写w)用于匹配字母,数字或下划线字符: (\W:反斜杠大写W)用于匹配所有与\w不匹配的字符: 元字符包括: +, *,? 元字符理解起来容易混淆,所以我在后面做了代码结果

  • php正则表达式中的非贪婪模式匹配

    一般情况下,正则表达式的匹配是贪婪模式的,比如下面这个例子: 字符串:....src="http://www.bloghome.cn/1.mp3" type="application/x-mplayer2" .... 要求的结果:http://www.bloghome.cn/1.mp3 如果匹配表达式写为:/src="(.*)"/,则得不到正确的结果,因为最后一个双引号的匹配是贪婪模式的. 解决办法:匹配表达式写为: /src="(.*

随机推荐