2013-05-26 6 views
8

Ich brauche Regex zu verwenden, um zu überprüfen, ob ein String beginnt mit einem doppelten Anführungszeichen Charakter (") und endet mit eineine doppelten Anführungszeichen auch Charakter.Wie die doppelten Anführungszeichen Zeichen darzustellen (") in regex?

Das Problem ist, ich nicht ein doppelten Anführungszeichen Zeichen verwenden kann, weil es durcheinander. gibt es eine andere Möglichkeit, ein doppelte Anführungszeichen Charakter " in regex, oder in Zeichenfolge im allgemeinen darzustellen?

String s = """; // ? 
+2

möglich Duplikat von [Wie gebe ich Anführungszeichen in einen String ein?] (Http://stackoverflow.com/questions/3559063/how-to-enter-quotes-in-a-string) oder [Java, escape (using) Zitate in einer Regex] (http://stackoverflow.com/questions/6398365/java-escaping-using-quotes-in-a-regex) oder ... –

Antwort

17

Zum einem doppelten Anführungszeichen ist nichts Besonderes in regex - es ist nur ein anderer Charakter, so braucht es nicht aus der Perspektive der regex entkommen.

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

Dieser Code wird testen, ob Ihr String entspricht:

if (str.matches("\".*\"")) { 
    // this string starts and end with a double quote 
} 

Beachten Sie, dass Sie nicht brauchen, Beginn und Ende der Eingabemarkierungen hinzuzufügen (^ und $) in der Regex, weil matches(), dass die gesamte erfordert Eingabe wird angepasst, um wahr zurückzugeben - ^ und $ sind impliziert.

+0

Ein Spaß, den Inhalt in Anführungsstrichen, die ich oft verwende Für Eigenschaften in xml-Tags ist '" [^ "] *" '(oder, als maskierter Java-String,' "\" [^ \ "] *" "). Ausbluten unmöglich;) – Nyerguds

8

müssen Sie den Backslash vorher verwenden ". wie \"

Vom doc here können Sie sehen, dass

Ein Zeichen ein Backslash (\) eine Escape-Sequenz ist und besondere Bedeutung für den Compiler.

und "(doppelte Anführungszeichen) ein escacpe Sequenz

Wenn eine Escape-Sequenz in einer print-Anweisung angetroffen wird, der Compiler es entsprechend interpretiert. Zum Beispiel, wenn Sie Zitate in Anführungszeichen setzen möchten, müssen Sie Verwenden Sie die Escape-Sequenz \ "auf den Interior-Anführungszeichen. Um den Satz zu drucken

Sie sagte "Hallo!" mir.

Sie

System.out.printin schreiben würde ("Sie sagte: \" Hallo \ "zu mir."!);

Verwandte Themen