使用正则表达式从 Javadoc 中提取 Java 类名



问题如下:我有一个Javadoc生成的HTML文件,其中包含Java类名和一些附加信息,如下所示:

{@link ml.foo.bar.BazAccEd} (Text) Some text
{@link ml.foo.bar.BazAccGrp} (Text) Some text BazAccGrpList
{@link ml.foo.bar.BazAccEdOrGroup} (Text) Some text {@link.ml.foo.bar.BazAccEdList}

我需要从中提取(使用 Ant 正则表达式功能)仅提取 Java 类的短名称,并且仅在它们是链接的一部分时,插入逗号代替原始普通文本,以便上面的示例将产生

BazAccEd
BazAccGrp
BazAccEdOrGroup, BazAccEdList

它可能没有什么太复杂的东西,但我没有遇到正确的正则表达式,该表达式只会解析链接并从中提取正确的数据。提前谢谢。

鉴于您提供的输入,这应该有效。它的工作原理是捕获句点和右大括号之间的文本:

.([A-Za-zd_]+)(?=})(?:.+.([A-Za-zd_]+)(?=}))*

这将返回两个捕获的组12。为了使逗号替换正常工作,您必须检查2中是否有任何内容。如果是这样,请在 12 之间插入逗号。

解释:

.([A-Za-zd_]+)(?=}) # look for a period, characters, and lookahead for closing curly brace. Capture the characters
(?:          # open a non-capturing group
.+           # gobble up characters until ...
.([A-Za-zd_]+)(?=}) # ... you find the same thing as in the first line above
)*           # make the non-capturing group optional
您可以使用

该正则表达式。

{@link[ .[a-zA-Z].[a-zA-Z]。[a-zA-Z].([A-Z-a-z0-9])}

相关内容

  • 没有找到相关文章

最新更新