Fjerne anførselstegn fra en streng

C#:
Fjerne anførselstegn fra en streng

Hvordan:

string withQuotes = "\"Hei, verden!\"";
Console.WriteLine($"Original: {withQuotes}");

// Fjerner doble anførselstegn
string withoutDoubleQuotes = withQuotes.Replace("\"", "");
Console.WriteLine($"Uten doble anførselstegn: {withoutDoubleQuotes}");

// Fjerner enkle anførselstegn (under forutsetning av at strengen din hadde dem fra starten)
string withSingleQuotes = "'Hei, verden!'";
string withoutSingleQuotes = withSingleQuotes.Replace("'", "");
Console.WriteLine($"Uten enkle anførselstegn: {withoutSingleQuotes}");

Utdata:

Original: "Hei, verden!"
Uten Doble Anførselstegn: Hei, verden!
Uten Enkle Anførselstegn: Hei, verden!

Dypdykk

Konseptet med å fjerne anførselstegn er ikke nytt eller spesielt komplekst, men det er kritisk fordi anførselstegn ofte brukes til å avgrense strenger. Når en streng med uescapede anførselstegn er inkludert i en kodeblokk eller en datafil, kan det avslutte strengen for tidlig, noe som forårsaker feil eller sikkerhetsproblemer som injeksjonsangrep.

Historisk sett har håndtering av anførselstegn vært en del av validerings- og saniteringsprosessen i databehandling. Mens .Replace()-metoden er enkel for å trekke anførselstegn ut av en enkel streng, kan du trenge mer avanserte teknikker som regulære uttrykk for å håndtere mer komplekse scenarioer, som nestede anførselstegn eller betinget fjerning.

Alternativer til .Replace() inkluderer metoder fra Regex-klassen når du trenger finjustert kontroll eller har å gjøre med mønstre i stedet for faste tegn. For eksempel kan Regex.Unescape() være praktisk når du håndterer escapede tegn.

Når det gjelder implementering, husk at strenger i C# er uforanderlige, noe som betyr at hver gang du bruker .Replace(), opprettes en ny streng. Dette er ikke et stort problem for små eller engangsoperasjoner, men det er noe å huske på ytelsesmessig for store eller mange strenger.

Se også: