我正在尝试对遍布HTML网页的5位优惠券代码进行字符串匹配。例如,532322103240021等...我可以用[0-9]{5}处理5位数字的任何字符串的简单情况,尽管它也匹配6、7、8 ... n位数字。有人可以建议我如何修改此正则表达式以仅匹配5位数字吗?

最佳答案

>>> import re
>>> s="four digits 1234 five digits 56789 six digits 012345"
>>> re.findall(r"\D(\d{5})\D", s)
['56789']

如果它们可能发生在开始或结束时,则比起特殊情况下的困惑更容易填充字符串
>>> re.findall(r"\D(\d{5})\D", " "+s+" ")

10-02 15:51