gpt4 book ai didi

python - 正则表达式匹配特定方法的 javadoc 注释 (python)

转载 作者:行者123 更新时间:2023-11-30 23:22:03 24 4
gpt4 key购买 nike

我无法找到一个与特定 java 方法的 javadoc 注释内容相匹配的正则表达式。示例:

/**
* Do not match this.
*/

/**
* Do match this.
*/
@SomeAnnotation
public boolean methodX() { }
/**
* Do not match this.
*/

我已经知道方法签名,因此我可以在正则表达式中使用它。

我可以使用以下方法匹配所有 javadoc 注释:

/\*\*(.*?)\*/

我还指定了 re.DOTALL。我尝试扩展正则表达式以使用否定前瞻,表示我只需要 javadoc 注释(如果它是立即执行该方法的注释):

/\*\*(.*?)\*/(?!.*?/\*\*.*?public boolean methodX\(\))

但这会导致 (.*?) 匹配从第一个 javadoc 注释开始到紧接着 methodX 的 javadoc 注释结束的内容。

我一直在尝试各种构建积极和消极前瞻的方法,但没有任何效果。我错过了什么?

最佳答案

这与 comment 命名组中给定示例文本中函数前面的注释(从 /***/)匹配:

(?P<comment>/\*\*(?:(?!/\*\*).)*?\*/)(?:(?:(?!\*/).)*?)(?=public boolean methodX)

查看test at regex101.com .

  • 这里的关键是使用 (?!/\*\* 忽略所需文本中额外的 /***/ ).)*?(?!\*/).)*?

  • ?:是从结果中删除不感兴趣的组

关于python - 正则表达式匹配特定方法的 javadoc 注释 (python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24683429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com