2011-05-09 14 views
5

ho la seguente stringaRimuovi parentesi quadre e virgolette singole non regex di lavoro

[custID] = 'A99999999'

sto cercando il seguente per rimuovere le parentesi quadre e le virgolette singole

Regex.Replace(sql, "/[\[\]']+/g", " ") 

ma non funziona. Continuo a ottenere gli stessi risultati

Nota: sql è una variabile che contiene la stringa sopra.

Voglio che il risultato sia

custID = A99999999

risposta

14

\[ non fa quello che pensi che faccia. Né è Regex lo stesso di Perl. Prova a modificare:

Regex.Replace(sql, @"[\[\]']+", ""); 
1

E 'questo quello che stai cercando? ['\\/]

Questo dovrebbe corrispondere a qualsiasi singolo carattere che è una barra o una virgoletta singola.

0

È possibile utilizzare stringa di dividere e unire come di seguito:

 string sql = "[custID] = 'A99999999'"; 
     var correctedString = string.Join("",sql.Split(new char[] {'[', ']', '\''})); 
     Console.Write(correctedString); 

Se si desidera utilizzare l'uso regex [\[\]'] in sostituzione di quelli.

1

Penso che stiate cercando Regex.Replace(sql, @"[\[\]']", " "); la @ introduce una stringa in cui non è necessario alcun escape, e Regex.Replace sostituisce tutte le corrispondenze, quindi non c'è bisogno del flag g - la sintassi delle espressioni regolari non è supportata qui, penso.

1

È possibile utilizzare questo:

Regex.Replace(sql, "[][']", "") 

Se vi state chiedendo come funziona, ] subito dopo [ non viene trattato come chiusura, ma come carattere letterale.

Problemi correlati