码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式的向前、向后匹配

时间:2017-04-07 00:49:25      阅读:771      评论:0      收藏:0      [点我收藏+]

标签:==   xxx   mobile   color   reg   正则表达式   字符   log   zab   

正则中向前匹配和向后匹配非常强大好用,直接代码。

代码示例:

 

// 向后匹配
// (?=)  匹配
// (?!)  不匹配
$str = "abcx1 abcy2 abcz3";

// 匹配后边是y的abc
$a = preg_replace(‘/abc(?=y)/‘, ‘0‘, $str);// abcx1 0y2 abcz3

// 匹配后边不是y的abc
$b = preg_replace(‘/abc(?!y)/‘, ‘1‘, $str);// 1x1 abcy2 1z3

// ===================================

// 向前匹配 注意有小于号
// (?<=)  匹配
// (?<!)  不匹配

$str = "1xabc 2abc 3zabc";

// 匹配前一个字符是数字的abc
$a = preg_replace(‘/(?<=\d)abc/‘, ‘0‘, $str);// 1xabc 20 3zabc

// 匹配前一个字符不是数字的abc
$b = preg_replace(‘/(?<!\d)abc/‘, ‘1‘, $str);// 1x1 2abc 3z1


// ===================================

// 同时向前向后匹配

$str = ‘XXX13188887777YYY123ZZZ‘;// 找到一个1开头的11位数字,并且前后都不是数字的,在数字前加一个 mobile:

// $1是刨除掉向前匹配的括号 注意
$re = preg_replace(‘/(?<=[^0-9])(1\d{10})(?=[^0-9])/‘, ‘ mobile:$1 ‘, $str);// XXX mobile:13188887777 YYY123ZZZ

 

正则表达式的向前、向后匹配

标签:==   xxx   mobile   color   reg   正则表达式   字符   log   zab   

原文地址:http://www.cnblogs.com/firstForEver/p/6642865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!