Come faccio a sostituire un effettivo carattere asterisco (*) nell’espressione Regex?

Ho una dichiarazione:

Ho una stringa come

content = "*   test    *"

Voglio cercare e sostituire con così quando mi sono fatto la stringa contiene questo:

content = "(*)   test    (*)"

Il mio codice è:

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

Ma questo provoca un errore in C# perché pensa che * fa parte della Sintassi di Espressioni Regolari.

Come posso modificare questo codice in modo tale che le modifiche di tutti gli asterischi nella mia stringa (*) invece senza causare un errore di runtime?

InformationsquelleAutor fraXis | 2010-05-10

 

5 Replies
  1. 31

    Dal * è una regex metacarattere, quando ne hai bisogno come un letterale asterisco al di fuori di una classe di caratteri definizione, deve essere preceduto con \ per \*.

    In C#, è possibile scrivere questo come "\\*" o @"\*".

    C# dovrebbe anche avere un general purpose “citando” un metodo in modo che si può citare una stringa arbitraria e di corrispondere un valore letterale.

    Vedere anche

  2. 10

    Non hai bisogno di una espressione regolare in questo semplice scenario. È possibile utilizzare una Stringa.Sostituire:

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

    Utilizzare Regex.Escape() ci vorrà tutta la stringa e fare in qualcosa che è possibile utilizzare come parte di un’espressione regolare.

Lascia un commento