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

如何替换字符串中的重复字符?正则表达式使用问题求助

问题分析与修复

你的代码存在两个核心问题:

  • 正则表达式完全偏离需求:你写的@"O\(*?\)"是匹配大写字母O后跟任意数量的左括号,和要替换的重复a、n毫无关联。
  • 输出对象错误:你最后打印的是原始字符串originalString,而非处理后的result变量,就算正则逻辑正确也看不到效果。

针对需求的两种实现方案:

方案1:替换连续重复的a或n(比如将"anna"中的"nn"替换为"c",得到"aca")

string originalString = "anna";
var result = Regex.Replace(originalString, @"([an])\1+", "c");
Console.WriteLine(result);

正则说明:([an])捕获单个a或n到分组,\1+匹配该分组字符连续重复1次以上的情况。

方案2:替换所有出现的a和n(因为"anna"中a和n都重复出现,全部替换为"c"后得到"cccc")

string originalString = "anna";
var result = Regex.Replace(originalString, @"[an]", "c");
Console.WriteLine(result);

正则说明:[an]匹配任意单个a或n字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:15:41