【发布时间】:2011-08-07 16:56:28
【问题描述】:
我正在写关于 C 文件的论文。我需要拆分一个 C 标头来操纵然后组成它的单打词。我必须按所有这些字符分割行:
- 空格和制表符
- 新行
;或\n - 单行 cmets 和多行 cmets
// /* */ - 指针
* - 数组括号
[]或[dimension]
所以,例如,如果我有这几行:
/* This is a
multiline comment.
*/
typedef int rocket;
// This is a single line comment.
typedef double* pi[10];
split 函数应该返回一个列表(或其他所有内容),如下所示:
["/*","This","is","a","\n","multiline","comment.","\n","*/","\n","\n","typedef","int","rocket",";","\n","\n","//","This","is","a","single","line","comment.","\n","typedef","double","*","pi","[10]",";"]
这应该在 Python 中完成!
我试过这个,但我对正则表达式的了解很少,这表明我找到了一个可怕的解决方案! :)
谢谢, 达里奥。
【问题讨论】:
-
你可以得到一个 C 语法解析器...
-
那不掉cmets,空行吗?
-
@yi_H:这取决于解析器。我已经在 Delphi 中编写了一个简单的 C 解析器(不是几乎完整,但对我的目的来说已经足够好了),它可以保留 cmets,甚至在正确的位置很好地格式化它们,从而转换为 Delphi。大多数 C 和 C++ 编译器附带的 预处理器 可能会删除 cmets。
-
您可能需要重新提出您的问题。现在,这听起来像是“请发送论文”。
-
Ops...如果这听起来像是一个 DoTheWorkForMe 问题,我很抱歉!这不是我的论文的要求,而是我希望它像解决这个特定问题的简单请求。我是第一个想做自己的工作的人! :)
标签: python c string header split