创建正则表达式以替换字符

时间:2010-11-08 17:18:03

标签: c# regex

我想在C#中构建Regex,Regex匹配char并将其交换到另一个clone char。 (例如交换1到2,但是2到4等。)

我该怎么办?

谢谢

1 个答案:

答案 0 :(得分:2)

使用MatchEvaluator。例如:

string s = "asdf12345";

s = Regex.Replace(s, "[123]", m => {
  switch (m.Value) {
    case "1": return "2";
    case "2": return "3";
    case "3": return "1";
  }
  return m.Value;
});

Console.WriteLine(s);

输出:

asdf23145

您也可以通过将字符串作为字符数组,替换所需的字符,并从数组中创建一个字符串来执行相同的操作:

char[] c = s.ToCharArray();
for (int i = 0; i < c.Length; i++) {
  switch (c[i]) {
    case '1': c[i] = '2'; break;
    case '2': c[i] = '3'; break;
    case '3': c[i] = '1'; break;
  }
}
s = new String(c);