Ich habe ein Array von regulären Ausdrücken. Eine davon muss mit allen Zeichenfolgen in einer gegebenen Java-Datei übereinstimmen.Regex für den Abgleich eines String-Literals in Java?
Dies ist die Regex Zeichenfolge ich bisher habe: "(\").*[^\"].*(\")"
jedoch die Zeichenfolge "Hello\"good day"
abgelehnt wird, obwohl die Anführungszeichen in der Zeichenfolge entkommen ist. Ich denke, was ich habe sofort das String-Literal zurückgewiesen, wenn es ein Anführungszeichen innerhalb findet, unabhängig davon, ob es oder nicht Escape ist. Ich brauche String-Literale mit entsprungenen Anführungszeichen, aber es sollte "Hello"Good day"
zurückweisen.
Pattern regex = Pattern.compile("(\").*[^\"].*(\")", Pattern.DOTALL);
Matcher matcher = regex.matcher("Hello\"good day");
matcher.find(0); //false
Bitte geben Sie einen [MCVE] ein. –
Wahrscheinlich möchten Sie einen negativen Blick auf das Zeichen "" werfen. Aber Sie werden es schwer haben, mit Kommentaren umzugehen. – aioobe
Auch Sie sagen '' Hallo \ "guten Tag \" wird abgelehnt 'und dann sagst du' aber Es sollte "Hallo" Guten Tag "" ablehnen. Das bedeutet, es funktioniert. – PeterS