首页 > 代码库 > 正则表达式的向前、向后匹配
正则表达式的向前、向后匹配
正则中向前匹配和向后匹配非常强大好用,直接代码。
代码示例:
// 向后匹配 // (?=) 匹配 // (?!) 不匹配 $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
正则表达式的向前、向后匹配
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。