• 正则表达式小记--匹配但不获取


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

  • 相关阅读:
    OI回忆录——一个过气OIer的制杖历程
    博客园美化手记——CSS javascript html
    ProjectEuler && Rosecode && Mathmash做题记录
    算法竞赛推荐
    2020智算之道复赛E 树数数
    牛客编程巅峰赛S1第9场
    c++小学期大作业攻略(五)基于QSS的样式美化
    c++小学期大作业攻略(四)任务系统+站内信
    c++小学期大作业攻略(三)用户系统
    c++小学期大作业攻略(零)建议+代码结构(持续更新)
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4048545.html
Copyright © 2020-2023  润新知