「未完成」正则中的贪婪模式与非贪婪模式

文章目录
  1. 1. 概览
  2. 2. 应用
  3. 3. 原理

请注意:本文编写于 2019-07-15,其中某些信息可能已经失去时效性。

概览

正则表达式中,贪婪模式与非贪婪模式指的是不同条件下被量词修饰的子表达式的匹配行为:

  • 贪婪模式在整个表达式匹配成功的前提下会尽可能多的匹配;
  • 非贪婪模式在整个表达式匹配成功的前提下会尽可能少的匹配;
  • 非贪婪模式只被部分 NFA引擎 所支持;

常见的贪婪模式量词,也称匹配优先量词

1
{m,n} {m,} ? * +

在一些使用 NFA引擎 的语言中,在匹配优先量词后加上 ?,即变成非贪婪模式量词,也叫做忽略优先量词,有:

1
{m,n}? {m,}? ?? *? +?

从正则语法的角度来讲,被匹配优先量词修饰的子表达式使用的就是贪婪模式,被忽略优先量词修饰的子表达式使用的就是非贪婪模式

应用

###

原理