2013-02-26 60 views
0

我有一个字符串,下面如何使用正则表达式替换C#

A123459922 

我想删除A和正则表达式与加B到它的结束所示。我怎么能这样做正则表达式

Regex.Replace("A123459922","(\w{1})(\d*)"); 

我不知道如何删除第一个字符,并添加'B'到它的结尾?结束了这样的事情

123459922B 
+3

Substring()有什么问题? – 2013-02-26 09:26:15

+0

只有在开始时出现“A”时才需要添加“B”或者总是不管? – 2013-02-26 09:27:36

+0

我明白了,但只是想知道正则表达式如何适用于这个问题 – wikinevis 2013-02-26 09:28:12

回答

2

我会用你的问题相同的正则表达式。

你可以看看这个(用于更复杂的情况)

Regex.Replace("A123459922",@"(\w{1})(\d*)", m => m.Groups[2].Value + "B"); 

Replace方法的第三个参数。它是一个MatchEvaluator,它收到一个Match并返回替换字符串。上述公式等同于:

private static void Main() 
{ 
    Regex.Replace("A123459922",@"(\w{1})(\d*)", Evaluator); 
} 

private static string Evaluator(Match m) { 
    return m.Groups[2].Value + "B"; 
} 

你基本上说:我想the 2nd group + the B character

+0

这个问题虽然不清楚,但确实提到了“第一个字符”。不应该考虑这个问题吗? – Jon 2013-02-26 09:27:40

+0

谢谢,我想将B添加到字符串的末尾 – wikinevis 2013-02-26 09:27:46

2

更换the entire match根据你给定的输入和输出字符串例如,你可以做到这一点简单地用Substring()

var newString = myString.Substring(1) + "B"; 
1

尝试使用此正则表达式:

Regex.Replace("A123459922", @"\w(.*)", "$1B");