相关疑难解决方法(0)

使用正则表达式从源文件中删除注释

我正在编写一个程序来自动编写一些C代码,(我正在编写将字符串解析为具有相同名称的枚举)C对字符串的处理并不是那么好.所以有些人一直在唠叨我试试python.

我创建了一个应该删除C风格/* COMMENT *///COMMENT 字符串的函数:这是代码:

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
Run Code Online (Sandbox Code Playgroud)

所以我尝试了这个代码.

str="/* spam * spam */ eggs"
removeComments(str)
print str
Run Code Online (Sandbox Code Playgroud)

它显然没有做任何事情.

关于我做错了什么的任何建议?

有一种说法,我听过几次:

如果您遇到问题而尝试使用Regex解决问题,最终会遇到两个问题.


编辑:回顾这几年后.(经过更多的解析经验)

我认为正则表达式可能是正确的解决方案.而这里使用的简单正则表达"足够好".我可能没有在这个问题上强调这一点.这是针对单个特定文件的.那没有棘手的情况.我认为保持文件解析对于正则表达式而言要简单得多,而不是将正则表达式复杂化为不可读的符号汤.

python regex string

25
推荐指数
4
解决办法
4万
查看次数

标签 统计

python ×1

regex ×1

string ×1