zoukankan      html  css  js  c++  java
  • 正则表达式: 正向预查和负向预查

    (?:pattern)匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就是一个比 'industry|industries' 更简略的表达式。 这个匹配实际是取消了()括号优先匹配的作用


    (?=pattern)正向预查,在任 何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

    正向预查匹配的是所有符合组合的字符串


    (?!pattern)负向预查,在任 何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

    负向预查简单的来说就周(?!=玲玲|红),可以匹配到非周玲玲和周红组合的字符串,也就是说可以匹配' 你好周,周你好、玲玲周、红周、等组合


  • 相关阅读:
    微信小程序开发入门(十六)
    npm安装教程
    js 比较两个日期大小
    js截取手机号后四位,并倒序输出
    TypeScript的安装和编译
    js中null和" "的区别
    阻止事件冒泡的3种方法
    阻止事件冒泡
    chrome查看js报错Uncaught SyntaxError: Unexpected string
    ES6思维导图
  • 原文地址:https://www.cnblogs.com/richiewlq/p/7308477.html
Copyright © 2011-2022 走看看