c# - 如何使用通配符删除字符串的特定部分?

标签 c# regex string

目前,我使用:

变量:

 int recordCount = 5;
 Header = "Index"; // Can also be "Starting Index"

标题:

 Header = Header.Split(' ')[0] + " (" + recordCount + ")";

变化:

 Index (5)

收件人:

 Index (6)

当我想用一个新的 Header 替换 Header 时,我使用上面的方法,但问题是当我开始在 Header 中使用多个单词时,它会删除 Header 的其余部分姓名。即当它说 Starting Index: 时,它只显示 Starting

我可以使用 Regex 简单地查找括号之间的值并将其替换为另一个变量吗?

最佳答案

Regex re = new Regex(@"\(\w+\)");
string input = "Starting Index: (12asd)";
string replacement = "12ddsa";
string result = re.Replace(input, replacement);

如果您需要执行更复杂的替换(即,如果替换取决于大括号之间捕获的值),您将不得不坚持使用 Regex.Match 方法

更新:使用 Match 很快就会变得丑陋:)

 Regex re = new Regex(@"^(.*)\((\w+)\)\s*$");
 string input = "Starting Index: (12)";
 var match = re.Match(input);

 string target = match.Groups[2].Value;
 //string replacement = target + "!!!!"; // general string operation
 int autoincremented = Convert.ToInt32(target) + 1; // if you want to autoincrement

 string result = String.Format("{0}: ({1})", match.Groups[1].Value, autoincremented);

关于c# - 如何使用通配符删除字符串的特定部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495009/

相关文章:

c# - 是锁定实例还是基于成员

c# - sqlite-net 无法识别父类的主键

c# - 函数等待其他应用程序的响应

javascript - 显示带有换行符的输出文本区域

C#,访问类中不同列表的通用方法

regex - 正则表达式编译器

regex - 用于删除缩进的正则表达式

c# - 如果对象为空,如何返回空字符串?

string - 将Scheme表达式转换为字符串

C - 返回字符指针数组中重复次数最多/出现次数最多的字符串