繁体   English   中英

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

[英]How can I replace string with regular expressions?

我将字符串替换如下:

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

但是字符串的数字部分不是静态的。 有时可以是“ V 17”,“ V 13”等。

如何在全球范围内将其替换为正则表达式?

这将用任何内容替换V和一个数字之间的空格:

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

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

(?=\\d)是前瞻性断言,表示“后跟数字”

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

注意:您必须包括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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM