Ein wenig Spaß mit Java dieses Mal. Ich möchte ein Programm schreiben, die einen Code von der Standardeingabe liest (Zeile für Zeile, zum Beispiel), wie:Java - regulärer Ausdruck findet Kommentare in Code
// some comment
class Main {
/* blah */
// /* foo
foo();
// foo */
foo2();
/* // foo2 */
}
findet alle Kommentare in sie und entfernt sie. Ich versuche, reguläre Ausdrücke zu verwenden, und jetzt habe ich so etwas getan:
private static String ParseCode(String pCode)
{
String MyCommentsRegex = "(?://.*)|(/\\*(?:.|[\\n\\r])*?\\*/)";
return pCode.replaceAll(MyCommentsRegex, " ");
}
aber es scheint nicht in allen Fällen zu arbeiten, zum Beispiel:
System.out.print("We can use /* comments */ inside a string of course, but it shouldn't start a comment");
Ratschläge oder Ideen anders als Regex? Vielen Dank im Voraus.
Ich denke, Ihr genaues Beispiel ist verrückt: der enge Kommentar in der Zeichenfolge wird den Kommentar schließen. Ein offener Kommentar in einer Zeichenfolge, die nicht in einem Kommentar enthalten ist, wird jedoch nicht gestartet. – Grandpa
Ja, mein Schlechter. Ich habe versucht, hier etwas Schwieriges zu geben und mich selbst ausgetrickst. – brovar
Ich würde mich freuen, wenn Sie es konsolidieren und in die Antwort einfügen könnten, nachdem Sie es versucht haben. Ich bin auch auf der Suche nach einer ähnlichen Lösung – Ravisha