python正则 非贪婪,正则表达式中表达非贪婪匹配
学习正则表达式时是这样的吗(:pattern (and))?=pattern)记录差异。
公式定义可以匹配模式以获得匹配,并且所获得的匹配可以从生成的匹配集合中获得。
(?匹配:pattern()模式,但没有获得匹配结果。也就是说,这是一个非收购匹配,没有存储用于未来使用。
(?=pattern()在字符串匹配模式的开头进行正向预检查,以匹配搜索字符串。这是一个非收购匹配,不需要为将来使用而收购。印前检查不消耗文字。也就是说,在一个匹配发生后,搜索下一个匹配在最后一个匹配之后立即开始。它不会在包含印前检查的字符之后开始。
共同点(?格局(和)?=pattern(所有匹配模式,但模式的结果将不包括在匹配集合中。
差异(?Pattern(匹配结果是pattern,(?=模式(不包括。比如相对于字符串: industry abc ,一致的结果:industry?3360yies -工业工业(?=y ies-‘工业’消耗人物吗?
(?模式)将消耗字符,并且以下字符的匹配从匹配位置开始:
(?=pattern))不消耗字符,下一个字符匹配从预校验前的位置开始。
也就是说,后者只是事前检查,一致指针不动。示例:注意:示例位置是友好视图位置。具体传动原理请参考基于本文的——NFA发动机匹配原理(感谢作者的分析)。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。