2010-11-08 50 views
0

我想在C#中构建正则表达式,正则表达式maches char并将其交换到另一个克隆字符。 (例如swape 1到2,但是2到4等)创建正则表达式来替换字符

我该怎么做?

谢谢

+0

请提供关于**的更多详细信息**完全**您正在尝试执行的操作,目前为止您尝试过的操作,该操作不起作用等。 – 2010-11-08 17:19:50

+0

我试图构建正则表达式。例如在英语中,我尝试将A替换为A,将B替换为B. – Rachel 2010-11-08 17:34:04

回答

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);