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

本文关键字:字符串 替换 正则表达式 何用 | 更新日期: 2023-09-27 17:50:34

我将字符串替换为如下;

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

但是字符串的数字部分不是静态的。有时可以是"v17","v13"等。

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

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

将V和数字之间的空格替换为空:

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

(?<='bV)是向后看断言,表示"前面有V",'b是单词边界。

(?='d)是一个前瞻性断言,意思是"后面跟着一个数字"

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

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

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

str = str. replace ("V ","V");

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