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. 【置顶】利用 NLP 技术做简单数据可视化分析教程(实战)
  2. nginx的负载均衡
  3. 对话框大小与像素关系
  4. Swift编码总结8
  5. Exchange 服务器可支持性矩阵
  6. 【Flink】解决 No ExecutorFactory found to execute the application
  7. Castle动态代理拦截器可构建可重启的流
  8. 嵌入式软件设计第九次实验报告-140201235-陈宇
  9. BZOJ-1507 文本编辑器(Editor)
  10. python后端教程_Python学习教程(技术干货):关于前后端分离开发入门
  11. Python 详解K-S检验与3σ原则剔除异常值
  12. 如何养狗完整版 !-为了迎接我的大宝做好准备
  13. C 语言绘制指针式时钟
  14. sdkman软件开发工具包管理器
  15. JavaScript 基础优化(读书笔记)
  16. OPPO出货量超越苹果跻身全球第四,直逼小米
  17. 接线端子01——常见接线端子介绍
  18. 74LS244 三态门 功能介绍
  19. 谈一谈|旅游信息资源交换系统设计规范解读(一)
  20. 模拟鼠标移动程序实现——解决域控制器策略强制电脑锁屏问题

热门文章

  1. InfoQ编辑2018年推荐阅读清单(第二部分)
  2. [CC-CHEFINV]Chef and Swaps
  3. springmvc mybatis 整合 框架源码 bootstrap html5 mysql oracle spring
  4. udev的一個小問題
  5. 祛除光盘上的小划痕/光盘的工作原理/光盘的正确使用方法
  6. AndroidOpenCV摄像头预览旋转90度问题
  7. 块层介绍 第二篇: request层
  8. Mmap的实现原理和应用
  9. 深入解读Linux进程调度系列(4)——调度与时钟中断
  10. Linux acpi off报告ACPI bug处理方法