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

如何在IntelliJ/VSCode中批量替换scaleAdapter调用并保留原数值?

批量替换scaleAdapter到flutter_screenutil的正则方案

你可以利用正则的捕获组功能,提取scaleAdapter()里的数值,再替换成对应单位的格式。以下是针对不同场景的具体正则规则,适用于Android Studio/VS Code等主流IDE的全局替换功能:

1. 水平方向尺寸(width相关)

搜索正则:

width:\s*scaleAdapter\((\d+(\.\d+)?)\)

替换内容:

width: $1.w

示例:

原代码:width: scaleAdapter(22) → 替换后:width:22.w

2. 垂直方向尺寸(height相关)

搜索正则:

height:\s*scaleAdapter\((\d+(\.\d+)?)\)

替换内容:

height: $1.h

示例:

原代码:height: scaleAdapter(30.5) → 替换后:height:30.5.h

3. 字号(fontSize相关)

搜索正则:

fontSize:\s*scaleAdapter\((\d+(\.\d+)?)\)

替换内容:

fontSize: $1.sp

示例:

原代码:fontSize: scaleAdapter(16) → 替换后:fontSize:16.sp

4. 圆角/通用尺寸(radius相关)

针对borderRadius、radius等属性:

搜索正则:

(borderRadius|radius):\s*scaleAdapter\((\d+(\.\d+)?)\)

替换内容:

$1: $2.r

示例:

原代码:borderRadius: scaleAdapter(8) → 替换后:borderRadius:8.r

IDE操作步骤(以Android Studio为例)

  1. 按Ctrl+Shift+R打开全局替换窗口
  2. 勾选窗口右上角的Regex(正则)选项
  3. 输入对应场景的搜索正则和替换内容
  4. 点击Find预览匹配结果,确认无误后点击Replace All

注意事项

  • 正则中的\s*用于匹配属性名和scaleAdapter之间的任意空格,避免因代码格式不一致漏替换
  • (\d+(\.\d+)?)可以匹配整数和小数形式的数值,覆盖所有可能的尺寸输入
  • 如果有其他属性场景(比如minWidth、maxHeight),只需修改正则中的属性名部分即可,例如minWidth:\s*scaleAdapter\((\d+(\.\d+)?)\)替换为minWidth: $1.w

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:58:19