讲师中心 微信公众号
AI工具推荐 视频效率加速

利用Sublime正则表达式提取接口文档中的参数列表

星杰姑娘_6297

星杰姑娘_6297

发布时间:2026-09-16 07:07:20

|

677人浏览过

|

来源于php中文网

原创

Sublime Text中匹配JavaDoc@param需分两步:先用/***[sS]?*//提取注释块,再在块内用*s@params+([a-zA-Z_]w)s(?: ? s*s+(.?))?(?= ? s*s@| ? s**/|$)捕获参数名及多行说明。

利用sublime正则表达式提取接口文档中的参数列表

匹配接口文档中形如 @param 的 JavaDoc 风格参数行

Sublime Text 的正则引擎默认是 PCRE(兼容 Perl),但不支持 (?(cond)yes|no) 这类条件表达式,也不支持 Unicode 属性(如 p{L}),所以得用更保守的字符集。常见接口文档里参数行长这样:

 * @param userId 用户 ID,必填

想一次性抓出所有 @param 行的参数名(比如 userId)、类型(如果有)、说明(后面的文字),关键在于:空格和换行不可贪心跨段,注释块可能混有空行或其它标签。

  • 用 ^s**s*@params+([a-zA-Z_]w*) 匹配最简情况:开头可能有空格、*、空格、@param、至少一个空格,然后是合法标识符(userId、is_valid 等)
  • 如果想连带捕获后续说明,加非贪婪点号:^s**s*@params+([a-zA-Z_]w*)s+(.*?)s*$,注意结尾 s*$ 能吞掉末尾空格和制表符
  • 别用 .* 跨行 —— Sublime 默认不开启 dotall 模式(即 . 不匹配换行),这是好事,避免误吞整个段落

处理多行参数说明(含换行缩进)

有些文档把说明写在下一行,且用相同缩进对齐,比如:

 * @param token<br> *         JWT 认证令牌,有效期 2 小时

这种不能靠单行正则搞定。得先选中整个注释块(以 /** 开头、*/ 结尾),再在块内做二次提取。

  • 先用 /**[sS]*?*/ 批量选中所有 JavaDoc 块([sS] 是 Sublime 中模拟 dotall 的写法)
  • 对每个块执行查找:*s*@params+([a-zA-Z_]w*)s*(?: ? s**s+(.*?))?s*(?= ? s**s*@| ? s**/|$) —— 这里用 (?: ? s**s+(.*?))? 捕获下一行说明,(?= ? s**s*@|...) 是正向先行断言,确保停在下一个标签或结尾前
  • 实际操作时建议分两步:先 Ctrl+H → 勾选 Regular Expression 和 Match Whole Word(可选),再粘贴正则;替换时用 $1 $2 快速导出为 TSV 表格

绕过 @return、@throws 等干扰项

直接搜 @param 会命中注释里的示例代码,比如 // 示例:@param id 传入用户ID,这种不是真实参数声明。

  • 必须锚定行首或紧邻 * 后:用 ^s**s*@param, 防止匹配到 @paramType 或 my@param
  • 排除注释行内出现的情况:在查找前先 Ctrl+Shift+P → Selection: Expand Selection to Line,再手动删掉明显不在 JavaDoc 块内的匹配项 —— Sublime 没有上下文感知能力,这点得人工兜底
  • 如果项目统一用 Lombok 的 @Data 或 Swagger 注解(如 @ApiParam),就别硬套 JavaDoc 正则,该切语法高亮模式(Java / JavaDoc / Markdown)再试

导出为 CSV 或 Markdown 表格时的编码与转义问题

说明文字里常含逗号、换行、双引号,直接用 , 分隔会破坏结构。Sublime 本身不解析 CSV,只能靠正则预处理。

  • 替换说明字段时,先统一把双引号改成两个双引号(CSV 规则):"([^"]*)" → "$1"",再用 "$1" 包裹整个字段
  • 避免用 替换换行 —— Sublime 查找框里按 Ctrl+Enter 输入的是字面 ,但替换时需粘贴真实换行符;更稳的做法是:选中说明部分 → Ctrl+Shift+P → Replace All in Selection → 把换行替换成 \n 字符串,之后再统一转义
  • 导出后务必用 VS Code 或 Excel 打开验证,因为 Sublime 的 UTF-8 BOM 处理有时不一致,特别是 Windows 下生成的文件被 Excel 直接打开会乱码

真正麻烦的不是正则写法,而是文档格式不统一:有人写 @param,有人写 PARAM:,还有人用表格。正则只能覆盖 70%~80% 的规范场景,剩下得靠人工校验 —— 尤其是嵌套泛型类型(如 List<Map<String, Object>>)里的尖括号,Sublime 正则很难安全剥离。

热门AI工具

更多
UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

4056

2023.06.20

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

2581

2023.07.05

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

7062

2023.07.05

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

792

2023.08.11

正则表达式空格
正则表达式空格

正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

500

2023.08.31

Python爬虫获取数据的方法
Python爬虫获取数据的方法

Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

653

2023.11.13

正则表达式空格如何表示
正则表达式空格如何表示

正则表达式空格可以用“s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

386

2023.11.17

正则表达式中如何匹配数字
正则表达式中如何匹配数字

正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

719

2023.12.06

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

0

2026.10.08

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn