php 正则预搜索?=
1、正向预搜索 "(?=xxxxx)","(?!xxxxx)"
"(?=xxxxx)”:所在缝隙的右侧,必须能够匹配上 xxxxx 这部分的表达式,
<?php
$str = 'windows NT windows 2003 windows xp';
preg_match('/windows (?=xp)/',$str,$res);
print_r($res);
结果:
Array
(
[0] => windows
)
这个是xp前面的windows,不会取NT和2003前面的。
格式:"(?!xxxxx)",所在缝隙的右侧,必须不能匹配 xxxxx 这部分表达式
<?php
$str = 'windows NT windows 2003 windows xp';
preg_match_all('/windows (?!xp)/',$str,$res);
print_r($res);
结果:
Array
(
[0] => Array
(
[0] => windows 这个是nt前面的
[1] => windows 这个是2003前面的
)
)
从这里可以看出,预搜索不进行存储供以后使用。
与会存储的对比下。
<?php
$str = 'windows NT windows 2003 windows xp';
preg_match_all('/windows ([^xp])/',$str,$res);
print_r($res);
结果:
Array
(
[0] => Array 全部模式匹配的数组
(
[0] => windows N
[1] => windows 2
)
[1] => Array 子模式所匹配的字符串组成的数组,通过存储取得。
(
[0] => N
[1] => 2
)
)
2、反向预搜索 "(?<=xxxxx)","(?<!xxxxx)"
"(?<=xxxxx)" :所在缝隙的 "左侧”能够匹配xxxxx部分。
<?php
$str = '1234567890123456';
preg_match('/(?<=\d{4})\d+(?=\d{4})/',$str,$res);
print_r($res);
结果:
Array
(
[0] => 56789012
)
匹配除了前4个数字和后4个数字之外的中间8个数字
"(?<!xxxxx)":所在缝隙的“左侧”不能匹配xxxx部分。
<?php
$str = '我1234567890123456';
preg_match('/(?<!我)\d+/',$str,$res);
print_r($res);
结果:
Array
(
[0] => 234567890123456
)
php 正则预搜索?=相关推荐
- Delphi 正则表达式语法(9): 临界匹配 - 也叫预搜索与反向预搜索
Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 varreg: TPerlRegEx; beginreg := ...
- python按正则方式搜索文件
import os,os.path,redef searchFile(pathname,filename):#参数1要搜索的路径,参数2要搜索的文件名,可以是正则表代式matchedFile =[]f ...
- Word正则表达搜索替换
1. 如果使用正则搜索? 首先按下Ctrl + H 弹出如图所示框 点击 更多 -> 使用通配符 按钮即可 比如我想搜索 所有英文字符后面跟中文汉字的字段: 输入:[a-zA-Z][一-龥] . ...
- java 正则 预编译_正则表达式预编译功能的正确使用
在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度. 同时,Pattern要定义为static final静态变量,以避免执行多次预编译. 下面,我们列举两类使用正则的场景,来具体说明预 ...
- 正则式高人谈解答正则式的心得
条件1: 长度为14个字符 条件2: 其中任意9个位置为数字,并且数字只能是(0,1,3) 条件3: 其余的位置全部为"-"符号 ------------------------- ...
- python正则匹配_python 正则表达式详解
正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...
- java匹配出某单词除外_java正则匹配 指定内容以外的 内容
今天,遇到一个需要 匹配出 指定内容以外的 内容的需求. 乍一看,需求貌视很简单啊,直接上 非贪婪模式的 双向零宽断言(有的资料上也叫 预搜索.预查.环视lookaround): 比如,我要匹配 串内 ...
- 学习deercao的正则笔记
#cs 学习deercao提供的正则30分钟资料的笔记 正则表达式就是个字符串处理语言,是用来"查找你想要的字符串和进行字符串的替换". 网页.程序或文件中有关文本内容的处理部分都 ...
- 正则基础之 NFA引擎匹配原理
来源:http://www.jb51.net/article/19332.htm 1 为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱 ...
- 强大的Perl中的正则
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2008/12/20/power-perl.html Perl的 ...
最新文章
- 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)
- nginx的负载均衡
- 对话框大小与像素关系
- Swift编码总结8
- Exchange 服务器可支持性矩阵
- 【Flink】解决 No ExecutorFactory found to execute the application
- Castle动态代理拦截器可构建可重启的流
- 嵌入式软件设计第九次实验报告-140201235-陈宇
- BZOJ-1507 文本编辑器(Editor)
- python后端教程_Python学习教程(技术干货):关于前后端分离开发入门
- Python 详解K-S检验与3σ原则剔除异常值
- 如何养狗完整版 !-为了迎接我的大宝做好准备
- C 语言绘制指针式时钟
- sdkman软件开发工具包管理器
- JavaScript 基础优化(读书笔记)
- OPPO出货量超越苹果跻身全球第四,直逼小米
- 接线端子01——常见接线端子介绍
- 74LS244 三态门 功能介绍
- 谈一谈|旅游信息资源交换系统设计规范解读(一)
- 模拟鼠标移动程序实现——解决域控制器策略强制电脑锁屏问题