You need to enable JavaScript to run this app. C#中String.Replace()与Regex.Replace()替换字符串失效问题求助
优惠活动
大模型
产品
解决方案
定价
更多

C#中String.Replace()与Regex.Replace()替换字符串失效问题求助

问题原因

你替换失败是踩了两个低级错误:

  1. 第一版代码中拼接了多余的双引号
    你在构造匹配字符串时前后加了\",相当于要匹配被双引号包裹的目标内容,但你的maindata原字符串里根本不存在双引号,完全匹配不到任何内容,替换自然不生效。
  2. 第二版简化的正则替换未转义元字符
    正则语法中+属于特殊元字符,代表匹配前一个字符至少1次,不是字面意义的加号。你的目标字符串里包含Disney+,直接把未转义的字符串当正则pattern传入,肯定匹配失败。

解决方法

方案1:普通字符串替换(优先选择,无转义负担)

你不需要正则功能的话直接用String.Replace即可,不用加任何多余的转义和符号:

string maindata = "Operational Metrics~Domestic Subscribers Disney+~2015 FY~9999";
string data = "Operational Metrics~Domestic Subscribers Disney+~2015 FY~9999";
string strformula = maindata.Replace(data, "W51");

方案2:正则替换(需要正则匹配规则时使用)

如果必须用正则,先通过Regex.Escape()把pattern里的所有正则元字符转义为字面量:

string maindata = "Operational Metrics~Domestic Subscribers Disney+~2015 FY~9999";
string data = "Operational Metrics~Domestic Subscribers Disney+~2015 FY~9999";
string strformula = Regex.Replace(maindata, Regex.Escape(data), "W51", RegexOptions.IgnoreCase);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 00:06:08