用Python解析Java源文件

3 投票
3 回答
8023 浏览
提问于 2025-04-16 16:02

我有一堆Java源文件。我需要写一个Python脚本,去检查这些源文件,找出所有的字符串字面量以及它们的位置。

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

  1. 字符串字面量 - "Hello World"
  2. 字符串组合 - "Hello" + "World"

我想到了几种方法来实现这个目标:

  1. 逐行检查源文件,寻找引号 ",用它来确定字符串的位置
  2. 使用正则表达式

你对我提到的这些方法有什么看法,或者有没有我没想到的其他方法?

顺便说一下,我们正在对代码进行国际化处理。这就是我想要自动化这个过程的原因。

3 个回答

2

另一个选择是 PLY,这是一个纯Python写的词法分析和语法分析工具。它是由David Beazley写的……他有一些 幻灯片 来展示这个工具的功能。使用这个工具需要一个BNF语法来定义你要解析的语法结构。我不确定你是否想要走这么远。

如果你不想使用BNF,pyparsing 也是一个不错的选择。

4

使用 re 模块是最快的解决办法。

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

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

撰写回答