zoukankan      html  css  js  c++  java
  • 正则表达式小记--匹配但不获取

    (?!=XXX[:|:|s]?)d{16}
    (?!=XXX)表示查找XXX内容,但最终结果不包括它
    (?=XXX)表示查找XXX内容,最终结果包括它
    [:|:|s]? 表示 全角冒号,半角冒号,空格 或没有字符

    (pattern) 匹配pattern 并获取这一匹配。所获取的匹配可以从产生的 
    Matches 集合得到,在VBScript 中使用 SubMatches 集合,在
    Visual Basic Scripting Edition 中则使用 $0…$9 属性。要
    匹配圆括号字符,请使用 '(' 或 ')'。

    (?:pattern) 匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹
    配,不进行存储供以后使用。这在使用 "或" 字符 (|) 来组合
    一个模式的各个部分是很有用。例如, 'industr(?:y|ies) 就
    是一个比 'industry|industries' 更简略的表达式。
    (?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符
    串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后
    使用。例如,'Windows (?=95|98|NT|2000)' 能匹配"Windows 
    2000"中的"Windows",但不能匹配"Windows3 .1"中"Windows"。
    预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹
    配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之
    后开始。 
    <!--
    以上这2个,(?:pattern) (pattern)
    好像是(?!=pattern)才达到 匹配 pattern 但不获取匹配结果 的效果 2007-4-9
    -->


    (?!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"。预查不消耗字
    符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开
    始下一次匹配的搜索,而不是从包含预查的字符之后开始 

  • 相关阅读:
    Java Logger 使用总结
    java中用Eclipse打JAR包,包含外部JAR
    安装e(fx)clipse到Eclipse (JavaFX工具)
    肾亏怎么办 下面给你支支招
    汇编cmp比较指令详解
    eclipse安装插件报错Unable to read repository at
    Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
    Java开发桌面程序学习(二)————fxml布局与控件学习
    JavaFX入门(二):JavaFX和FXML
    Apache Tomcat 文件包含漏洞 (CVE20201938) 复现
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4048545.html
Copyright © 2011-2022 走看看