使用Python解析Java源文件

时间:2011-04-19 15:28:42

标签: python regex parsing

我有一堆Java源文件。我需要编写一个遍历源文件的python脚本,并识别所有字符串文字及其位置。

问题是字符串可能有几种不同的形式,例如:

  1. 字符串文字 - “Hello World”
  2. 文字的组合 - “你好”+“世界”
  3. 我想出了几个想法来实现这个目标:

    1. 逐行浏览源文件,查找“并使用它来识别字符串的位置
    2. 使用正则表达式
    3. 您对我这样做的方式或其他我没有想过的方法有什么评论吗?

      如果您想知道,我们的代码库正在进行国际化。这就是为什么我要尝试自动化这个过程。

3 个答案:

答案 0 :(得分:3)

使用re模块是最快的解决方案。

你可以使用re.finditer()返回每个匹配的正则表达式的内容和位置

>>> for m in re.finditer(r"\w+ly", text):
...     print '%02d-%02d: %s' % (m.start(), m.end(), m.group(0))

答案 1 :(得分:2)

另一个选项是PLY,这是一个纯python lex / yacc。它是由David Beazley编写的......他有一些slides来证明这些功能。这将需要BNF语法来量化您正在解析的语法。我不确定你是否想走那么远。

如果您不想使用BNF,pyparsing是另一种选择。

答案 2 :(得分:2)