我正在花一些时间来理解Python 3中的正则表达式术语,但我无法弄清楚这里的(\D\d)+
是如何工作的。
我知道\D
表示非数字字符,\d
表示数字字符,加号+
表示前面的表达式重复一次或多次。但是当我尝试以下代码时,我就无法理解结果。
输入:
import re
text = "a1 b2 c3 d4e5f6"
regex = re.findall(r'(\D\d)+',text)
print(regex)
输出:
['a1', 'b2', 'c3', 'f6']
由于正则表达式中包含加号符号,那么它不应该也输出d4e5f6吗?因为它们是非数字和数字字符的序列。
(?:\D\d)+
。详细解释请参考链接。 - hoyland