PCRE正则表达式函数

PCRE字符类

\\b        词边界

\\d        匹配任意数字

\\s        匹配任意空白,如TAB制表符或空格

\\t        匹配一个TAB制表符

\\w        匹配包含字母与数字的字符

PCRE匹配

在绝大多数PCRE示例中,分隔符都使用一个/,可在引号内表达式的开始和结尾出看到,在PCRE表达式中的最后一个分隔符/后面,可添加一个修饰符来更改正则表达式的行为 1.preg_match() 在字符串中查找匹配项,它需要两个参数:正则表达式(parttern)与字符串(string)

  1. <?php
  2. $email="raymond.du@yhys.com";
  3. echo preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+[a-zA-Z0-9_-]$/",$email);
  4. ?>

2.preg_quote() 在每个正则表达式语法的前面加入一个转义字符,也就是反斜线(\)

  1. <?php
  2. $string="$3000 你会去周游世界吗,^-^";
  3. echo preg_quote($string);
  4. ?>

3.preg_split() 表示用正则表达式分隔字符串

  1. <?php
  2. $string="+杜江+++林林++++++++++++北京大学+++中华人民共和国";
  3. $fields=preg_split("/\+{1,}/",$string);
  4. foreach ($fields as $field) {
  5. echo $field."<br>";
  6. }
  7. ?>

4.preg_grep()

  1. <?php
  2. $goods=array("家居","家具","窗体","家装");
  3. //把"家"字打头的数组内容取出生成一个新数组$item
  4. $item=preg_grep("/^家/",$goods);
  5. print_r($item);
  6. ?>

5.preg_replcae() 格式:mixed preg_replcae(mixed pattern,mixed replace,ent,mixed subject); 这个函数会將string中符合表达式pattern的字符串全部替换为表达式replacement.如果 replacement中需要包含pattern的部分字符,则可以使用"()"来记录,在replacement中只需要用"\\1"来读取 比如:將用户输入的一段文字进行分析,如果有http:的字样,则认为是一个网址,并加上超链接

  1. <?php
  2. $string="欢迎炎黄养生网 http://www.yhys.com/";
  3. echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>",$string);
  4. ?>

6.preg_replace_callback() 该函数使用回调函数执行正则表达式的搜索和替换

  1. <?php
  2. //回调函数,即用户自定义替换函数
  3. function do_spam($matches){
  4. $pre_array=array('gg'=>'帅哥','mm'=>'美眉','pp'=>'漂亮');
  5. if (isset($pre_array[$matches[1]])){
  6. return $matches[1] . "(" . $pre_array[$matches[1]] . ")";
  7. }else {
  8. return $matches[1];
  9. }
  10. }
  11. //原字符串
  12. $string="这位<spam>gg</spam>的<spam>mm</spam>很<spam>pp</spam>哦";
  13. //从<spam></spam>中搜索匹配的子进行替换
  14. $new_string=preg_replace_callback("/<spam>(.*)<\/spam>/U",'do_spam',$string);
  15. print_r($new_string);
  16. ?>

PHP-PCRE正则表达式函数的更多相关文章

  1. <转>PHP中正则表达式函数

    PHP中的正则表达式函数 在PHP中有两套正则表达式函数库.一套是由PCRE(Perl Compatible Regular Expression)库提供的,基于传统型NFA.PCRE库使用和Perl ...

  2. PHP正则表达式函数学习

    正则表达式是在日常开发中经常用到的,通常一些使用频率过高的正则表达式都是直接粘贴复制,对于基础正则的使用还是要铭记于心的,今天抽时间整理一些php正则表达式的用法. 一.php中常用的正则表达式函数 ...

  3. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  4. Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解

    1. Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数: stringObj 必选项,需要去进行匹 ...

  5. Oracle正则表达式函数:regexp_like、regexp_substr、regexp_instr、regexp_replace

    Oracle正则表达式函数:regexp_like.regexp_substr.regexp_instr.regexp_replace   --去掉所有特殊字符,只剩字母  SELECT REGEXP ...

  6. php中PCRE正则表达式分隔符的使用

    转自:http://www.baiwar.com/post/the-use-of-php-pcre-regex-delimiter.html 在php5.3.0以前,PHP可使用两套正则表达式规则,一 ...

  7. Node.js之【正则表达式函数之match、test、exec、search、split、replace使用详解】

    1. Match函数 使用指定的正则表达式函数对字符串惊醒查找,并以数组形式返回符合要求的字符串 原型:stringObj.match(regExp) 参数: stringObj 必选项,需要去进行匹 ...

  8. Oracle 正则表达式函数-REGEXP_REPLACE

    背景 当初写oracle的一个存储过程,以前不知道sql里也有正则表达式,关于正则表达式教程很多了,这里只是记录下Oracle也有这个功能,下次再有类似需求用这个处理的确方便很多. 想起存储过程,就想 ...

  9. php中常用的正则表达式函数

    php中常用的正则表达式函数 * preg_match() * preg_match_all() * preg_replace() * preg_filter() * preg_grep() * pr ...

随机推荐

  1. python 之编码问题详解

    前在一个项目中遇到用post提交一个xml,xml中含有中文,对于单独的py文件,使用urllib2.urlopen完全ok,但在django中使用就一直报编码错误,然后在网上看到这篇文章不错,决定m ...

  2. Eclipse CDT 代码高亮配置

    效果图如下: 配置生效方式: 找到CDT的workspace目录中如下文件 X:\workspace\.metadata\.plugins\org.eclipse.core.runtime\.sett ...

  3. [SQL]SQL优化34条

    我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! () 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE 的解析器按照从右到 ...

  4. Codeforces 418d Big Problems for Organizers [树形dp][倍增lca]

    题意: 给你一棵有n个节点的树,树的边权都是1. 有m次询问,每次询问输出树上所有节点离其较近结点距离的最大值. 思路: 1.首先是按照常规树形dp的思路维护一个子树节点中距离该点的最大值son_di ...

  5. AndroidManifest.xml 屏幕上下反转

    通常我们的应用只会设计成横屏或者竖屏,锁定横屏或竖屏的方法是在AndroidManifest.xml 文件中设定属性android:screenOrientation为"landscape& ...

  6. sql查询,如何增加一列

    select * from (select 'finish_order_info' as table_name,count(1)as num from fraudorder.finish_order_ ...

  7. QWizard中运行时默认按钮显示英文问题

    QWizard中运行时默认按钮在编译前设计界面的时候是显示中文的,运行的时候就变成英文了.. 后来是发现国际化的时候有问题,解决办法如下: 在main.cpp里加: QTranslator* tran ...

  8. 为什么要使用Spark?

    现有的hadoop生态系统中存在的问题 1)使用mapreduce进行批量离线分析: 2)使用hive进行历史数据的分析: 3)使用hbase进行实时数据的查询: 4)使用storm进行实时的流处理: ...

  9. UVA12653 Buses

    Problem HBusesFile: buses.[c|cpp|java]Programming competitions usually require infrastructure and or ...

  10. 浅谈如何使用代码为MP3文件写入ID3Tags

    作者:郑童宇 GitHub:https://github.com/CrazyZty 1.前言 做了三年左右的Android开发,一直没写过博客,最近正好打算换工作,算是闲一些,就将以前开发所遇到的一些 ...