我替换下面的字符串;
string str = "Opps V 14";
str = str.Replace("V 14", "V14");
但字符串的数字部分不是静态的。有时它可能是" V 17"," V 13"等。
如何全局替换正则表达式?
答案 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();
}
}