`
Howareyou73
  • 浏览: 46340 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

解读Javascript正则表达式之正向预查

阅读更多

1. 下面是一个正则表达式匹配的例子!

var tmp=null;
var re=/(?=bbb)b/g;
while((tmp=re.exec("bbbbbbb"))!=null){
     alert(tmp.index+":"+tmp);
}

结果是弹出如下:



.........

..............

.....................

还有 2:b , 3:b , 4:b  .... 就不上图了!

2. 为什么会有这样一个结果呢?

我们可以看出这样的搜索过程!

首先是  (?=bbb), 它之所以叫做正向预查,

它的作用就是从当前的查找位置开始,向后搜索符合条件的位置,并停留下来!

对于字符串 bbbbbbb, 搜索过程如下



对步骤进行描述

A. (?=bbb)b 是正则,其中(?=bbb) 像先头部队一样,先到字符串里打探情况,找到有 bbb的地方,并记录位置
 
B. 然后在记录的位置去匹配b, 如果匹配上了, 则查找位置,移到匹配之后,也就是 b 后面,

C. 我们可以把b看作是红旗,占领了之后, ?=bbb 就从红旗后面继续去侦察? 继续找 有bbb的地方

D. 找到之后,再拿b来匹配! 。。一直匹配到末尾!



3. ?= 在后面的预查, 这个就要好理解多了!

var tmp=null;
var re=/bb(?=c)/g;
while((tmp=re.exec("bbcbbabbc"))!=null){
     alert(tmp.index+":"+tmp);
}

bb(?=c) 的意思就是找到符合 bbc的,但是匹配的时候,只匹配 bb ,
也就是说查找位置移到bb的后面, 而不是移到bbc的后面,
然后从 bb的后面开始向后查找!



总结:?= 放在前面的时候,是用来预先查找位置的, ?=放到后面的时候,用来“假”匹配的!
分享到:
评论

相关推荐

    JavaScript正则表达式迷你书

    《JavaScript正则表达式迷你书》是一本关于JavaScript正则表达式的专业书籍,正则表达式是处理字符串的强大工具,广泛应用于编程语言中的文本处理。本书从字符匹配、位置匹配、括号的作用、回溯法原理、拆分、构建和...

    Javascript正则表达式教程

    ### JavaScript正则表达式教程详解 #### 一、正则表达式概述 正则表达式是一种强大的工具,用于处理文本中的模式匹配与替换。它由一系列普通字符和特殊字符(元字符)组成,用于定义一组规则,从而识别并操作符合...

    JavaScript正则表达式.ppt

    了解正则表达式概念 掌握正则表达式的语法 熟练掌握正则表达式在JavaScript中的应用

    精通 JavaScript正则表达式

    JavaScript中的正则表达式是一种强大的文本处理工具,用于在字符串中执行模式匹配和搜索操作。它们在数据验证、文本替换和提取子字符串等任务中扮演着核心角色。 首先,正则表达式允许我们测试字符串是否符合特定...

    JavaScript正则表达式验证身份证号码是否合法(两种方法)分析.docx

    JavaScript正则表达式验证身份证号码是否合法(两种方法)分析 正则表达式(Regular Expression)是一种描述字符模式的对象。下面,我们将通过JavaScript正则表达式来验证身份证号码是否合法。 正则表达式的基本...

    JavaScript 数据校验 正则表达式 示例代码

    正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则表达式 示例代码JavaScript 数据校验 正则...

    JavaScript正则表达式迷你书(1.1版)_程序逻辑_

    **JavaScript正则表达式迷你书(1.1版)** 正则表达式是JavaScript中一个强大的工具,用于处理文本字符串,进行模式匹配和查找、替换等操作。它们在编程逻辑中扮演着至关重要的角色,尤其是在处理字符串数据时,...

    javascript正则表达式详解

    JavaScript正则表达式是JavaScript语言中一种极为重要的文本处理工具,它允许通过简洁的语法定义文本的匹配模式。这些模式可用来对字符串进行检索、替换、提取等操作。了解和掌握JavaScript正则表达式,对于提高...

    正则式工具(自动生成正则表达式)

    4. **代码生成**:对于多种编程语言,如Java、Python、JavaScript等,工具可以生成对应的代码片段,方便将正则表达式集成到项目中。 5. **学习资源**:为了帮助用户深入理解正则式,工具可能还包含教程、参考资料和...

    正则表达式必知必会v_1.0.pdf

    "正则表达式必知必会" 正则表达式是一种强大的文本处理工具,广泛应用于各个领域。下面是对正则表达式的详细解释: 正则表达式的用途 正则表达式主要用于处理文本,提供了两大主要功能:查找和替换。查找功能允许...

    javascript正则表达式表单验证大全

    ### JavaScript正则表达式在表单验证中的应用详解 在Web开发中,表单验证是确保数据质量和用户体验的重要环节。JavaScript正则表达式提供了一种强大的工具,用于前端数据校验,确保用户输入的数据格式正确无误。...

    精通正则表达式(第三版)简体中文版

    - **JavaScript中的正则表达式**:JavaScript的正则表达式对象提供了丰富的功能,包括全局匹配、忽略大小写等选项。 - **.NET框架中的正则表达式**:通过System.Text.RegularExpressions命名空间提供支持。 #### 六...

    JavaScript正则表达式使用详解.zip

    在JavaScript中,正则表达式还有许多特殊结构,比如预查(lookahead)、后顾(lookbehind)、边界匹配符(如`\b`用于匹配单词边界)等,这些都能帮助我们编写更复杂的匹配规则。 文件"JavaScript正则表达式使用详解...

    JavaScript正则表达式工具

    JavaScript正则表达式工具是一种基于JavaScript开发的应用程序,旨在帮助开发者和编程爱好者更方便地理解和使用正则表达式。在编程领域,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于字符...

    JavaScript正则表达式详解及使用方法

    主要内容包括创建正则表达式的方法、常用的元字符、量词、边界符、字符集合、反向引用、正向预查等。同时,文章还通过具体示例展示了如何在JavaScript中使用正则表达式的exec、test、match、replace、search和split...

    JavaScript正则表达式迷你书(1.1版)

    JavaScript正则表达式是编程语言JavaScript中的一个重要组成部分,它用于处理字符串模式匹配和搜索替换,是数据验证、文本处理和信息提取的关键工具。在1.1版的《JavaScript正则表达式迷你书》中,作者深入浅出地...

    三目运算符+正则表达式

    在编程世界中,三目运算符和正则表达式是两个非常重要的概念,它们各自扮演着独特的角色,同时也常被结合起来使用,以提高代码的简洁性和效率。让我们深入探讨这两个主题。 首先,三目运算符,也称为条件运算符,是...

    精通正则表达式中文版英文版_中文版为扫描版

    在正则表达式的世界里,基础概念包括字符类(如匹配任何数字[\d])、量词(匹配0次或多次*,1次或多次+,至少n次{n}等)、分组与捕获(使用括号()来定义一个子模式)、预查(用^符号否定预查,如[^abc]匹配非abc的...

    JavaScript经典正则表达式实战

    JavaScript正则表达式是编程语言JavaScript中的一个重要组成部分,它用于处理文本字符串,进行...在JavaScript开发过程中,掌握正则表达式不仅能够提高代码质量,还能提升开发效率,是每个前端开发者必备的技能之一。

Global site tag (gtag.js) - Google Analytics