Question: I want to replace these characters with string.Empty:`'"<>?*/\|` in given Filename
How to do that using Regex
I have tried this:

```
Regex r = new Regex("(?:[^a-z0-9.]|(?<=['\"]))", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
                 FileName = r.Replace(FileName, String.Empty);

```

but this replaces all special characters with String.Empty.

Answer: 
You could use the [Regex.Replace](http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.replace.aspx) method. It does what its name suggests.

```
Regex regex = new Regex(@"[\\'\\""\\<\\>\\?\\*\\/\\\\\|]");
var filename = "dfgdfg'\"<>?*/\\|dfdf";
filename = regex.Replace(filename, string.Empty);

```

But I'd rather sanitize it for all characters that are forbidden in a filename under the file system that you are currently using, not only the characters that you have defined in your regex because you might have forgotten something:

```
private static readonly char[] InvalidfilenameCharacters = Path.GetInvalidFileNameChars();

public static string SanitizeFileName(string filename)
{
    return new string(
        filename
            .Where(x => !InvalidfilenameCharacters.Contains(x))
            .ToArray()
    );
}

```

and then:

```
var filename = SanitizeFileName("dfgdfg'\"<>?*/\\|dfdf");

```
look here how to do it:

[How to remove illegal characters from path and filenames?](https://stackoverflow.com/questions/146134/how-to-remove-illegal-characters-from-path-and-filenames)

remember to use Path.GetInvalidFileNameChars()