目前,我使用:
变量:
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/