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

如何在含不区分大小写Id的行中将string替换为int(正则分组问题)

解决正则替换:将含Id的行中的string替换为int

我来帮你搞定这个正则替换的问题!你之前的思路方向是对的,但分组的方式没抓住核心——我们需要精准定位到要替换的string,同时确保当前行包含不区分大小写的Id。

正确的正则方案

根据你的需求,我们可以分两种场景实现(适配不同的正则工具,比如VS、Notepad++、JetBrains IDE等):

方案1:精准捕获分组(推荐,兼容性强)

开启不区分大小写模式(工具里一般有"Match Case"的勾选框,取消它就好),使用以下正则:

  • 查找:^(public\s+)string(\s+.+)$
  • 替换:$1int$2

方案2:正向预查(更灵活,适合复杂场景)

同样开启不区分大小写模式,用预查确保当前行包含Id,再定位string:

  • 查找:(?i)^(?=.*Id)(public\s+)string(\s+.+)$
  • 替换:$1int$2

为什么你的原正则没生效?

你之前写的^(.*(string).*(Id).*)$分组逻辑有问题:

  • \1是整个匹配的行,\2是捕获到的string,\3是捕获到的Id
  • 这种分组方式没法直接把string替换成int,因为你没法单独保留string前后的内容

实际替换效果示例

拿你的代码行举例:

  • 原行:public string ID {get; set}
  • 匹配后,$1是public ,$2是 ID {get; set}
  • 替换后结果:public int ID {get; set}

所有包含Id(不区分大小写,比如IdSite、ID、IdParent)的行都会被正确替换,其他行(比如public string PageType {get; set})则不会被修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:51:19