python正则表达式

Dob*_*boy 3 python regex

什么是"{m}"和"{m,n}?"之间的差异?在http://docs.python.org/library/re.html中它说"{m,n}?" 匹配范围为m到n次的数字,但它不是贪婪的搜索.因此,如果它不是一个贪婪的搜索,它不会只匹配m,无论如何?

Tim*_*ker 14

{m,n}?最好只匹配m重复,但n如果需要更长的匹配,它将根据需要扩展到重复.

比较^x{2}y$^x{2,4}?y$:

前者将失败xxxy而后者将匹配.

总结一下:

x{m}:x 准确 匹配m时间.

x{m,n}:尝试匹配x n时间,但如果这导致整体匹配失败,请根据需要返回,但至少匹配m一次(贪心量词).

x{m,n}?:尝试匹配x m时间,但如果这导致整体匹配失败,则根据需要展开,但最多匹配n(延迟量词).

  • @Marco:不,你不应该在15分钟内将解决方案标记为答案.总是等待一个小时左右.(在我看来,这是一个相当迂回,不太清楚的解释.) (2认同)