C# – Remove characters using Regex


I have a string. I need to replace all instances of a given array of strings from this original string – how would I do that?

Currently I am using…

var inputString = "this is my original string.";
var replacement = "";
var pattern = string.Join("|", arrayOfStringsToRemove);

Regex.Replace(inputString, pattern, replacement);

This works fine, but unfortunately it breaks down when someone tries to remove a character that has a special meaning in the regex.

How should I do this? Is there a better way?

Best Solution

Build the pattern using Regex.Escape:

StringBuilder pattern = new StringBuilder();
foreach (string s in arrayOfStringsToRemove)
Regex.Replace(inputString, pattern.ToString(0, pattern.Length - 1), // remove trailing |