我想在C#中构建Regex,Regex匹配char并将其交换到另一个clone char。 (例如交换1到2,但是2到4等。)
我该怎么办?
谢谢
答案 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);