1

我需要识别给定目录中不同类型的源文件中的注释。(例如 java、XML、JavaScript、bash)。我决定使用 Python 来做这件事(作为学习 Python 的尝试)。我的问题是

1)我应该知道关于python的什么来完成这项工作?(我有一个想法,正则表达式会很有用,但有替代品/其他模块有用吗?我可以用这些库来完成这项工作?)

2) Python 是完成此类任务的好选择吗?其他一些语言会让这更容易实现吗?

4

3 回答 3

5

您的问题似乎与编程语言解析更相关。我相信使用正则表达式,您将能够找到大多数语言的注释。好消息是您几乎到处都有正则表达式:Perl、Python、Ruby、AWK、Sed 等。

但是,正如另一个答案所说,你最好使用一些解析机器。而且,如果不是一个成熟的解析器,一个词法分析器。对于 Python,请查看Pygments库,该库已经实现了许多语言的词法分析器。

于 2012-04-06T17:26:11.010 回答
2

1)您需要了解的是解析,而不是正则表达式。此外,您将需要 os 模块和一些关于 pythons 文件处理的知识。DiveIntoPython (http://www.diveintopython.net/) 是一个好的开始。我推荐第 6 章。(也许还有 1-5 章 :))

2) Python 是一个好的开始。另一种语言不会让它变得更容易,但会有所不同。Python allready 上手非常简单。

我建议不要将正则表达式用于您的任务,因为它就像搜索注释符号和换行一样简单。

于 2012-04-06T17:24:12.903 回答
2

pyparsing模块直接支持多种样式的注释。例如,

from pyparsing import javaStyleComment
for match in javaStyleComment.scanString(text):
    <do stuff>

因此,如果您的目标只是完成工作,请考虑这一点,因为注释解析器可能比您拼凑的任何东西都更强大。如果您对自己学习做这件事更感兴趣,这可能对您的口味来说太多加工食品了。

于 2012-04-07T12:52:37.230 回答