如何用正则表达式替换字符串?

时间:2014-03-15 13:25:22

标签: c# regex

我替换下面的字符串;

string str = "Opps V 14";
str = str.Replace("V 14", "V14");

但字符串的数字部分不是静态的。有时它可能是" V 17"," V 13"等。

如何全局替换正则表达式?

3 个答案:

答案 0 :(得分:3)

这将取代V和数字之间的空格:

string pattern = @"(?<=\bV) (?=\d)";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(str, "");

(?<=\bV)是一个后视断言,意思是“以V开头”,\b是一个单词边界。

(?=\d)是一个先行断言,意思是“后跟一个数字”

Lookaround断言不是匹配结果的一部分,只是检查。这就是为什么只删除空间的原因。

注意:您必须在文件开头包含using System.Text.RegularExpressions;

答案 1 :(得分:2)

假设除了数字之外,字符串的其余部分是静态的,那么就像在V之后删除空格一样简单:

  

str = str.Replace(“V”,“V”);

答案 2 :(得分:1)

class Program
{
    static void Main(string[] args)
    {
        string str = "Opps V 14";
        string[] temp = str.Split(' ');
        str = String.Join(" ", temp.Take(2)) + temp.Last();
    }
}