2016-06-07 14 views
1

ich, ob eine Zeichenfolge, um herauszufinden, ich versuche, die einfache oder doppelte Anführungszeichen enthält auch einen umgekehrten Schrägstrich es zu entkommen enthalten sind oder nichtZeichen zu identifizieren, die entkommen sind

bemerkte ich auf C#, dass, wenn ich die folgenden beiden haben

Saiten
string escaped = "It\'s awesome. \"Yes it is\" "; 
string nonEscaped = "It's awesome. Yes it is"; 

dann werden sie in genau der gleichen Art und Weise ausgedruckt (mit Ausnahme der doppelten Anführungszeichen):

Es ist fantastisch. Ja, es ist

Es ist genial. „Ja, es ist“

Welchen Sinn, da das Escape-Zeichen macht wird nicht ausgedruckt ...

aber ich versuche, eine Funktion zu schreiben, zu identifizieren, dass es und „Ja, es ist“ verwenden escaped Zeichen für die einfachen und doppelten Anführungszeichen ...

Gibt es eine Möglichkeit, das zu tun?

Antwort

1

und \” sind eigentlich das gleiche. Der Backslash wird verwendet, um die Quotemark zu umgehen, da Sie sie nicht einfach direkt dort schreiben können, weil der C# -Compiler sie als Ende der Zeichenkette erkennt. Dasselbe gilt für Apostrophs, da wir sie verwenden, um einzelne Charaktere zu umgeben. Also, wenn Sie einen einzelner Apostroph Charakter haben Sie sie bekommen zu entkommen: '\’’

So Ihre Frage zu beantworten, gibt es keinen Unterschied zwischen den und \’ Zeichen so gibt es keine Möglichkeit, es zu bestimmen. Sie können es mit dem nächsten Code überprüfen:

string a = "'"; 
string b = "\'"; 
Console.WriteLine (a == b); // True 
Console.WriteLine (a.Equals(b)); // True 

Lesen Sie mehr über Zeichen in C# zu entkommen: CodeProject.

+0

Ja, das habe ich. Ich möchte nur eine Logik schreiben, um zu überprüfen, ob der Backslash direkt vor dem einfachen Anführungszeichen hinzugefügt wurde (vergessen wir das doppelte Anführungszeichen). – user3587624

+0

Bitte überprüfen Sie die aktualisierte Antwort. –

+0

Sie sagen also, dass es in C# keine Möglichkeit gibt, herauszufinden, ob eine Zeichenfolge vor einem einzelnen Anführungsstrich einen Backslash hatte. Recht? C# wird sagen: "Es ist großartig" und "Es ist großartig" sind immer gleich. Richtig? – user3587624

Verwandte Themen