+ vs *匹配重复的组时(python 2.7-re模块)

时间:2018-11-25 17:17:44

标签: regex python-2.7

我正在编写正则表达式以提取不确定数量的数字字符串,这些数字字符串将出现在特定“开始”标记之后的列表中。

下面是我正在做的实际匹配的简化版本。在下面的示例中,我有两个正则表达式,不同之处仅在于它们使用+还是*来指定组中要查找的数字的重复次数。

只有这两个中的第一个成功返回期望的匹配。

我的理解是+*在默认情况下都是贪婪的。因此,我会认为,两者都应寻求找到“数字组” (\d{1,4},?\s*)的全部四个重复,以及+是将组的最小可接受重复设置为1还是将{ {1}}将可接受的最小重复次数设置为0没关系。

什么解释了这种行为?

注意:我在这里试图了解导致观察到的行为的原因。在这种情况下,我不是在寻找“更轻松”的方式来返回所需的特定比赛。 (例如,在这种特定情况下,有几种方法可以简化“数字组” *,但在实际应用中,该组实际上更复杂,不便于简化,从而避免了使用分组的RE。)< / p>

(\d{1,4},?\s*)

0 个答案:

没有答案