括号内的单词不能在python正则表达式中工作

时间:2015-03-21 11:40:44

标签: python regex python-2.7

我试图从文件中获取所有测试用例列表。 例如。 void DTC_SetHighBitRate_001()

re.findall("void S?[DS]TC_.+\(\)", testCaseFile)

但是现在,很少有测试用例像这样被修改,

void DTC_SetHighBitRate_001(void) 
void DTC_SetHighBitRate_001(Void)

我尝试使用这样的正则表达式:

re.findall("void S?[DS]TC_.+\([vV]oid)*(\)", testCaseFile)

但是这没用。我想在括号内只允许'void''Void'。我怎么能这样做?

编辑:很抱歉提及,即使'无效'它不存在,应该允许。

  1. 空的paranthesis - ()
  2. 空隙
  3. 空隙

2 个答案:

答案 0 :(得分:2)

让我给你一个改进的版本:

re.findall("void S?[DS]TC_.+\([vV]oid\)", testCaseFile)

这将只找到带有void的事件(注意*已删除)

re.findall("void S?[DS]TC_.+\(([vV]oid)?\)", testCaseFile)

这将找到所有情况:只是空括号和void

答案 1 :(得分:1)

如果你想获得......(无效)或......(无效)条款。试试这个

re.findall("void S?[DS]TC_.+\([vV]oid]*\)", testCaseFile)