Wie stellen Sie das Anführungszeichen (") in Regex dar? [Duplizieren]

8

Ich muss regex verwenden, um zu prüfen, ob ein String mit einem doppelten Anführungszeichen ( " ) beginnt und mit einem doppelten Anführungszeichen endet.

Das Problem ist, dass ich ein Anführungszeichen nicht verwenden kann, weil es dadurch verwirrt wird. Gibt es eine andere Möglichkeit, ein doppeltes Anführungszeichen Zeichen " in Regex oder String allgemein darzustellen?

%Vor%     
Gigalala 26.05.2013, 17:02
quelle

2 Antworten

18

Erstens, doppelte Anführungszeichen sind nichts besonderes in Regex - es ist nur ein anderes Zeichen, so dass es nicht aus der Perspektive von Regex zu entkommen braucht.

Da java jedoch doppelte Anführungszeichen verwendet, um String-Konstanten zu trennen , wenn Sie eine Zeichenfolge in Java mit einem doppelten Anführungszeichen darin erstellen möchten, müssen Sie sie entkommen.

Dieser Code testet, ob Ihr String übereinstimmt:

%Vor%

Beachten Sie, dass Sie Anfang und Ende der Eingabemarker ( ^ und $ ) nicht in der Regex hinzufügen müssen, da matches() erfordert, dass die gesamte Eingabe mit true übereinstimmt - ^ und $ sind impliziert.

    
Bohemian 26.05.2013, 23:29
quelle
8

Sie müssen einen umgekehrten Schrägstrich vor ". wie \"

verwenden

Aus dem Dokument hier können Sie das sehen

  

Ein Zeichen mit einem umgekehrten Schrägstrich (\) ist eine Escape-Sequenz und hat   spezielle Bedeutung für den Compiler.

und "(double quote) ist eine Eskalationssequenz

Wenn in einer print-Anweisung eine Escape-Sequenz auftritt, interpretiert der Compiler sie entsprechend. Wenn Sie beispielsweise Anführungszeichen in Anführungszeichen setzen möchten, müssen Sie die Escape-Sequenz \ "für die inneren Anführungszeichen verwenden. So drucken Sie den Satz

  

Sie sagte "Hallo!" zu mir.

Sie würden schreiben

  

System.out.println ("Sie sagte" Hallo! "zu mir.");

    
stinepike 26.05.2013 17:03
quelle

Tags und Links