首页 > 解决方案 > 正则表达式模式完全匹配 n 次

问题描述

假设我有一个模式 *123*234*567,它恰好重复了 3 次(比如 * 和 (.*?) 的组合。

如何编写模式只能匹配 3 次而不是更多或更少的正则表达式?

标签: pythonregex

解决方案


您可以使用非捕获组并查找3它的连续匹配项。不确定要在星号之间匹配什么,我假设为数字和字母数字字符:

s = '*42*998 *123*234*567 *123*123'

re.findall(r'(?:\*(?:\d+|\w+)+){3}', s)
# '*123*234*567']

推荐阅读