You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求正则表达式:定位含inner方法的@GET注解方法

解决方案:匹配@GET方法及其关联的Inner内部方法(含startWrite)

正则表达式(需开启多行+点匹配换行模式)

要覆盖你说的跨方法场景,需要用支持多行匹配和点号匹配换行的正则工具(比如IntelliJ IDEA搜索框勾选「Regex」和「Dot matches newline」,Java代码里用Pattern.DOTALL | Pattern.MULTILINE),正则如下:

@GET\s+(?:.*?)\s+(\w+)\s*\([^)]*\)\s*\{\s*(?:.*?)\1Inner\s*\([^)]*\)\s*;\s*.*?\}.*?private\s+(?:.*?)\s+\1Inner\s*\([^)]*\)\s*\{\s*(?:.*?)startWrite\s*\([^)]*\)\s*;.*?\}

正则逻辑拆解

  • @GET\s+(?:.*?)\s+(\w+):定位@GET注解,捕获目标方法名到分组1(比如updateConfig)
  • \s*\([^)]*\)\s*\{\s*(?:.*?)\1Inner\s*\([^)]*\)\s*;:匹配@GET方法体里调用同名+Inner的方法(比如updateConfigInner();)
  • .*?private\s+(?:.*?)\s+\1Inner\s*\([^)]*\)\s*\{\s*(?:.*?)startWrite\s*\([^)]*\)\s*;:匹配对应的Inner私有方法,且确认方法内存在startWrite()调用
  • 全程用\s*兼容任意空格/换行,.*?非贪婪匹配避免跨多个方法误匹配

使用步骤

  1. 打开IDE的全局搜索,切换到正则模式,勾选「点匹配换行」选项
  2. 粘贴上述正则,搜索整个代码库
  3. 对匹配到的结果,将对应的@GET替换为@POST即可

兼容调整

  • 如果Inner方法不是私有,可把private改成(?:private|protected|public)
  • 如果方法名包含下划线,把\w+替换为[\w_]+

内容的提问来源于stack exchange,提问作者user9934848

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:52:38