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的 ...
最新文章
- 神经网络基础:(2)损失函数
- try...catch的方式处理多个异常
- Linux疑难杂症解决方案100篇(一)-静态链表全解析
- 算法与数据结构(选择排序)
- java 是否继续_Java异常被抛出或被捕获之后,代码是否继续执行的问题
- java中用swing实现绘画_【年度盘点】最受欢迎的5大Java练习项目
- Adobe DreamweaverCS4 beta+可用序列号,FireworkCS4 beta及SoundboothCS4 beta 官方下载地址...
- 通向AGI(通用人工智能)的另类书单
- 工作中使用到的单词(软件开发)_20210402备份
- 计算机全盘搜索功能不见了,win7搜索功能不见了两种恢复方法(图文)
- Apple: Mac OS X美洲狮10.8的硬件兼容列表
- 气死老师的作文(转贴)
- 大数据应用导论 Chapter1 | 大数据技术与应用概述
- 微软技术交流群 303295519
- OPENWRT MT7628 驱动移植WIFI折腾记
- php zend optimizer 解密,PHP反编译工具(Mr.DeZend GUI)下载 v1.0
- “天空地”一体化生态系统监测概念介绍
- c语言switch中文版,C语言 switch语句小陷阱
- 这些年,这些挖掘机算法,这些反思
- 微课-面向对象程序设计(5课82分钟)