之前写过一段Perl脚本,可以一下子删除代码中的所有C语言注释。我大致浏览了一下Python的re模块,感觉差不多。依然是把一个C文件读成一个字符串然后使用sub()进行匹配删除。发现“/× ×/”注释总是无法识别,很是苦恼。
开始以为是正则表达式在两种语言下有差异,后来发现Python代码在Linux环境中正常在Windows下面异常。
正则表达式是一样的,以下是Python代码
哪位大神给解释下为什么?
import re
code_file = open('test.c','r')
code_content = code_file.read()
code_content_temp = re.sub(r'((?<=\n)|^)[ \t]*\/\*.*?\*\/\n?|\/\*.*?\*\/|((?<=\n)|^)[ \t]*\/\/[^\n]*\n|\/\/[^\n]*','',code_content)
print(code_content_temp)