Regulärer Ausdruck für Java-Kommentare: egrep "(/\*\* | /* | \*/ | \*\*/)" text.txt

Regulärer Ausdruck für Java-Kommentare: egrep "(/\*\* | /* | \*/ | \*\*/)" text.txt

Ich versuche, Zeilen zu extrahieren, die einen Java-Kommentar beginnen oder beenden:

Was ich habe ist:

egrep "(/** | /* | */ | **/)" text.txt

Mir ist aufgefallen, dass dies für alle Zeilen funktioniert (wie z. B. /* Kommentar */), außer für diejenigen, die Folgendes enthalten:nur/*, /**, **/ oder */ und nichts davor oder danach.

Warum ist das?

Antwort1

Ihr Muster egrep "(/** | /* | */ | **/)" text.txtenthält explizite Leerzeichen. Versuchen Sie es ohne diese:egrep "(/**|/*|*/|**/)" text.txt

Antwort2

Sie fügen in Ihr Muster Leerzeichen ein und vergessen die Kommentarzeilen, die mit beginnen //.

Mit:

egrep "(/\*\*|/\*|\*/|\*\*/|//)" text.txt

Ich sehe alle Zeilen, die Kommentare beginnen oder beenden, einschließlich Zeilen, die nur die Token enthalten. Zum Beispiel ...

text.txt:

this should not be there
// this should be there
/* and this too */
/** even this
should be there too **/
/* or
that
also */
not this
/*
*/
/**
**/

Ausgabe:

// this should be there
/* and this too */
/** even this
should be there too **/
/* or
also */
/*
*/
/**
**/

verwandte Informationen