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 正则预搜索?=相关推荐

  1. Delphi 正则表达式语法(9): 临界匹配 - 也叫预搜索与反向预搜索

    Delphi 正则表达式语法(9): 临界匹配 - 也叫"预搜索"与"反向预搜索" //匹配右边 varreg: TPerlRegEx; beginreg := ...

  2. python按正则方式搜索文件

    import os,os.path,redef searchFile(pathname,filename):#参数1要搜索的路径,参数2要搜索的文件名,可以是正则表代式matchedFile =[]f ...

  3. Word正则表达搜索替换

    1. 如果使用正则搜索? 首先按下Ctrl + H 弹出如图所示框 点击 更多 -> 使用通配符 按钮即可 比如我想搜索 所有英文字符后面跟中文汉字的字段: 输入:[a-zA-Z][一-龥] . ...

  4. java 正则 预编译_正则表达式预编译功能的正确使用

    在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度. 同时,Pattern要定义为static final静态变量,以避免执行多次预编译. 下面,我们列举两类使用正则的场景,来具体说明预 ...

  5. 正则式高人谈解答正则式的心得

    条件1: 长度为14个字符 条件2: 其中任意9个位置为数字,并且数字只能是(0,1,3) 条件3: 其余的位置全部为"-"符号 ------------------------- ...

  6. python正则匹配_python 正则表达式详解

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  7. java匹配出某单词除外_java正则匹配 指定内容以外的 内容

    今天,遇到一个需要 匹配出 指定内容以外的 内容的需求. 乍一看,需求貌视很简单啊,直接上 非贪婪模式的 双向零宽断言(有的资料上也叫 预搜索.预查.环视lookaround): 比如,我要匹配 串内 ...

  8. 学习deercao的正则笔记

    #cs 学习deercao提供的正则30分钟资料的笔记 正则表达式就是个字符串处理语言,是用来"查找你想要的字符串和进行字符串的替换". 网页.程序或文件中有关文本内容的处理部分都 ...

  9. 正则基础之 NFA引擎匹配原理

    来源:http://www.jb51.net/article/19332.htm 1 为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱 ...

  10. 强大的Perl中的正则

    转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2008/12/20/power-perl.html Perl的 ...

最新文章

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

热门文章

  1. linux系统设置cpu孤立
  2. 【svn】Centos搭建svn服务器环境
  3. toString方法和valueOf方法以及Symbol.toPrimitive方法的学习
  4. php与web服务器关系
  5. JSON数据实际应用
  6. WebLogic(12C)——windows下安装教程
  7. xmind 使用备忘
  8. Wireshark实战分析之TCP协议(一)
  9. Android 四大组件学习之BroadcastReceiver二
  10. /proc/meminfo文件内容详解