我需要在字符串中删除单词XXX,并在XXX之前删除一个单词。
我如何使用C#Regexp做到这一点?
答案 0 :(得分:1)
单个正则表达式替换:
string input = @"Hello World XXX Goodbye XXX Rabbit!";
Regex rgx = new Regex(@"\s*\w+\s+(?:XXX|xxx)"); // or maybe [Xx]{3}
string result = rgx.Replace(input, "", 1);
Console.WriteLine(result);
Hello Goodbye XXX Rabbit!
如果替换前面有一个单词(一个或多个字符),则此替换只会将XXX
作为目标。探索演示,了解它在各种输入下的表现。
我们还可以通过以下方式使搜索模式不敏感:
Regex rgx = new Regex(@"\s*\w+\s+XXX", RegexOptions.IgnoreCase);
^^^^^ add this
答案 1 :(得分:-3)
你可以使用替换方法:
String s = "aaa bbb";
s = s.Replace("a", "")
// The example displays the following output:
// The initial string: 'aaa bbb'
// The final string: 'bbb'
或者使用正则表达式代替:
tmp = s.Replace(n, "[^0-9a-zA-Z]+", "");