How do I replace an actual asterisk character (*) in a Regex expression?

53,470

Solution 1

Since * is a regex metacharacter, when you need it as a literal asterisk outside of a character class definition, it needs to be escaped with \ to \*.

In C#, you can write this as "\\*" or @"\*".

C# should also have a general purpose "quoting" method so that you can quote an arbitrary string and match it as a literal.

See also

Solution 2

You can escape it:

\*

Solution 3

You don't need a regular expression in this simple scenario. You can use String.Replace:

content = content.Replace("*", "(*)");

Solution 4

Use Regex.Escape() It will take all of the string and make it into something you can use as part of a regex.

Solution 5

Use \\* instead of * in regex.replace call

Share:
53,470
fraXis
Author by

fraXis

Updated on July 09, 2022

Comments

  • fraXis
    fraXis almost 2 years

    I have a statement:

    I have a string such as

    content = "*   test    *"
    

    I want to search and replace it with so when I am done the string contains this:

    content = "(*)   test    (*)"
    

    My code is:

    content = Regex.Replace(content, "*", "(*)");
    

    But this causes an error in C# because it thinks that the * is part of the Regular Expressions Syntax.

    How can I modify this code so it changes all asterisks in my string to (*) instead without causing a runtime error?

  • Thomas
    Thomas almost 14 years
    Also, consider using a tool if you are composing regular expressions. Expresso has helped me a lot: ultrapico.com/Expresso.htm