【问题标题】:Match a java main class with regexp将 java 主类与正则表达式匹配
【发布时间】: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”。不确定这必须有多强大。
  • 是的,它不一定是防水的。我现在通过简单地使用文件名(即我最常将主类放入的公共类名)部分解决了它。可能不需要正则表达式。真的应该现在也去睡觉了...不过还是谢谢

标签: java regex emacs elisp


【解决方案1】:

Java 中的主类不必有任何特定的名称。事实上,一个 Java 项目可以有几个主要的类,它们都有不同的名称。

【讨论】:

  • 我真正的意思是如何匹配文件中包含主函数的任何类名。可能应该让自己更清楚。
  • 正则表达式不会这样做。
猜你喜欢
  • 1970-01-01
  • 2015-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 2011-05-26
相关资源
最近更新 更多