我有一堆Java源文件。我需要编写一个遍历源文件的python脚本,并识别所有字符串文字及其位置。
问题是字符串可能有几种不同的形式,例如:
我想出了几个想法来实现这个目标:
您对我这样做的方式或其他我没有想过的方法有什么评论吗?
如果您想知道,我们的代码库正在进行国际化。这就是为什么我要尝试自动化这个过程。
答案 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)