【发布时间】:2010-02-23 00:21:03
【问题描述】:
我正在为 emacs 编写一个插件,以通过一次按键来编译和运行 java 源文件。 现在我想找出主类的名称,或者是否没有。 任何人都知道如何将 java 主类名与正则表达式匹配?
我的第一个想法,在伪代码正则表达式中是
- 找到第一个以“class”开头的单词,然后是“{”...“public static void main(String[]”
编辑- 这就是我已经走了多远。功能尚未完全完善,但几乎...
(?<=class ).*[^ ](?= *{.*public static void main)
我讨厌正则表达式,但我仍然喜欢它。只是太难掌握了。
【问题讨论】:
-
JDE 还没有这样做吗,也许您可以将您的插件固定在上面,以免您为常见的东西重新发明轮子,那么您的模式/命令也会立即获得观众。跨度>
-
如果你想获得真正的技术,你需要寻找“静态公共”以及修饰符可能以任一顺序出现。它也可以被宣布为最终的,即使那是多余的。您还需要看到有一个“String[]”类型的参数。并且可以将其声明为“String[] args”或“String args[]”或“String ... args”。不确定这必须有多强大。
-
是的,它不一定是防水的。我现在通过简单地使用文件名(即我最常将主类放入的公共类名)部分解决了它。可能不需要正则表达式。真的应该现在也去睡觉了...不过还是谢谢