Usando regex para remover comentários dos arquivos de origem

Estou criando um programa para automatizar a escrita de algum código C (estou escrevendo para analisar cadeias de caracteres em enumerações com o mesmo nome) O manuseio de cadeias de caracteres de C não é tão bom. Então, algumas pessoas estão me incomodando para tentar python.

Eu criei uma função que deveria remover o estilo C/* COMMENT */ e//COMMENT de uma string: Aqui está o código:

def removeComments(string):
    re.sub(re.compile("/\*.*?\*/",re.DOTALL ) ,"" ,string) # remove all occurance streamed comments (/*COMMENT */) from string
    re.sub(re.compile("//.*?\n" ) ,"" ,string) # remove all occurance singleline comments (//COMMENT\n ) from string

Então, eu tentei esse código.

str="/* spam * spam */ eggs"
removeComments(str)
print str

E aparentemente não fez nada.

Alguma sugestão sobre o que eu fiz de errado?

Há um ditado que ouvi algumas vezes:

Se você tiver um problema e tentar resolvê-lo com o Regex, terá dois problemas.

EDIT: Olhando para trás, anos depois. (depois de um pouco mais de experiência de análise)

Eu acho que a regex pode ter sido a solução certa. E o regex simples usado aqui "bom o suficiente". Eu posso não ter enfatizado isso o suficiente na questão. Isso foi para um único arquivo específico. Isso não teve situações complicadas. Eu acho que seria muito menos manutenção manter o arquivo sendo analisado de maneira simples o suficiente para o regex do que complicar o regex, em uma sopa de símbolos ilegível.

questionAnswers(10)

yourAnswerToTheQuestion