Python (?:\d[-]*?){13,16}-与将模式与给定正则表达式匹配时给定的优先级混淆
我不明白为什么这个模式捕获了Python (?:\d[-]*?){13,16}-与将模式与给定正则表达式匹配时给定的优先级混淆,python,regex,Python,Regex,我不明白为什么这个模式捕获了4564-1234-4325-2146,尽管它有19个数字,包括“-” 上述模式仅捕获了4564-1234435-2146-8 保留最后一个连字符和数字8它捕获13-16个数字,每个数字后面都有零个或多个空格或破折号([-]*?)。换句话说,{13,16}适用于整个组(?:\d[-]*?)。例如,它可以捕获1--2-3--4-5-6 7--8-9-0-1-2-3-4-5-6-。在您的示例中,它捕获以下16个块: 四, 五, 六, 四,- 一, 二, 三, 四,- 四
4564-1234-4325-2146
,尽管它有19个数字,包括“-”
上述模式仅捕获了4564-1234435-2146-8
保留最后一个连字符和数字8它捕获13-16个数字,每个数字后面都有零个或多个空格或破折号(
[-]*?
)。换句话说,{13,16}
适用于整个组(?:\d[-]*?)
。例如,它可以捕获1--2-3--4-5-6 7--8-9-0-1-2-3-4-5-6-
。在您的示例中,它捕获以下16个块:
- 四,
- 五,
- 六,
- 四,-
- 一,
- 二,
- 三,
- 四,-
- 四,
- 三,
- 二,
- 五,-
- 二,
- 一,
- 四,
- 六,