1234567891011121314151617181920 |
- """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)
|