`
Howareyou73
  • 浏览: 46059 次
  • 性别: 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正则表达式.ppt

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

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

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

    javascript正则表达式详解

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

    常用Javascript正则表达式汇总

    JavaScript中的正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配和搜索替换。以下是一些常见的JavaScript正则表达式及其应用: 1. **匹配中文字符**:`[\u4e00-\u9fa5]` 这个正则表达式用于匹配...

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

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

    javaScript正则表达式讲解用ppt

    JavaScript中的正则表达式是一种强大的文本处理工具,用于在字符串中进行模式匹配、搜索、替换等操作。在JavaScript中,正则表达式被广泛应用于数据验证、文本处理和字符串操作等方面。 1. **正则表达式概念** - ...

    JavaScript常用正则表达式

    正则表达式(Regular Expression)是JavaScript中的一种强大工具,用于匹配字符串中的模式。在JavaScript中,正则表达式可以用来验证用户输入,例如检查邮箱地址的有效性或手机号码的格式。以下是一些JavaScript中...

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

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

    经典JavaScript正则表达式实战

    JavaScript 正则表达式实战是编程学习中不可或缺的一部分,尤其是在处理表单验证等任务时,正则表达式的应用非常广泛。下面详细解析了文档中提到的JavaScript正则表达式实战应用的各个方面。 首先,匹配结尾的数字...

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

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

    常用正则表达式大全.txt

    根据提供的文件信息,我们可以整理出一系列与正则表达式相关的知识点。这些知识点涵盖了从基本的数字验证到复杂的字符串匹配等多个方面。下面是详细的知识点总结: ### 基本概念 正则表达式是一种用于文本模式匹配...

    JavaScript正则表达式工具

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics