正则表达式 - 删除XXX之前的一个单词,也删除XXX

时间:2018-01-12 09:35:08

标签: c# regex

我需要在字符串中删除单词XXX,并在XXX之前删除一个单词。

我如何使用C#Regexp做到这一点?

2 个答案:

答案 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!

Demo

如果替换前面有一个单词(一个或多个字符),则此替换只会将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]+", "");