python 中的正则表达式 OR findall

Regular expression OR in python findall

我正在尝试使用正则表达式

re.findall("void (D|S)TC_.+\(\)", testCaseFile)

我的期望是上面的表达式returns列表

void DTC_Sample_01()
void STC_Sample_02()

但应该忽略

void ZTC_Sample_03() 或任何其他。

但它没有按预期工作

您正在使用的圆括号告诉 findall() 匹配模式并返回给您 圆括号的内容。使用 ?: 您将像以前一样匹配模式,但您得到的是整个匹配项。

re.findall("void (?:D|S)TC_.+\(\)", testCaseFile)