"""Removes C/C++ style comments from text. Gratefully adapted from https://stackoverflow.com/a/241506 """ import re comment_pattern = re.compile(r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', re.DOTALL | re.MULTILINE) def _comment_stripper(match): """Removes C/C++ style comments from a regex match. """ s = match.group(0) return ' ' if s.startswith('/') else s def comment_remover(text): """Remove C/C++ style comments from text. """ return re.sub(comment_pattern, _comment_stripper, text)