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

如何编写正则匹配不同类型@元素间无空行的多行PHPDoc注释

PHPDoc不同类型@标签无空行场景匹配正则

适用场景

用于快速定位PHPDoc注释中,不同类型@标签直接相邻、中间未插入空行的不规范写法,方便后续批量补充空行对齐规范。

匹配规则说明

  • 需匹配:两个不同类型的@标签所在行直接相邻,中间没有空行
  • 忽略匹配:相同类型的@标签相邻(比如多个@param、多个@throws相邻不需要加空行)、不同@标签中间有空行的合规写法

可用正则表达式

适用于VS Code、PHPStorm等支持多行正则的编辑器,开启多行匹配模式后使用:

/\* @(\w+).*\R\h*\* @(?!\1)\w+

正则逻辑拆解

  • \* @(\w+):匹配PHPDoc行内的@标签,将第一个标签名捕获到分组1
  • .*\R:匹配当前行剩余内容与换行符(\R可兼容Windows、Linux、macOS不同换行格式)
  • \h*\*:匹配下一行开头的水平空白符与PHPDoc行固定前缀*
  • (?!\1)\w+:否定预查,确保下一个@标签名和分组1捕获的标签名不一致,即仅匹配不同类型标签相邻的场景

匹配效果验证

可匹配的不规范写法

* @return string
 * @throws LocalizedException

不会匹配的合规写法

不同标签中间有空行的场景:

* @param null|ProductInterface $product
 *
 * @return string

相同标签相邻的场景:

* @throws LocalizedException
 * @throws NoSuchEntityException

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 12:24:00