Hallo,
ich habe ein sehr spezielles Problem bezüglich Regular Expressions. Was ich machen möchte ist ein Lines-of-Code Counter für java Programme. Erstmal egal wie ich die zählen möchte, aber zuerst entferne ich jegliche Art von Whitespaces und Single-Line / Multi-Line-Comments.
Mit letzterem trat das Problem auf, dass falls ich Strings im source code fest codiert hab mit "..." hat er dort manchmal auch das pattern für Kommentare gefunden und alles danach entfernt. Meine Lösung dafür war erstmal: ersetze alles zwischen "" durch einen default-String (zum LOC zählen ja irrelevant was drin ist) und lösche dann erst Kommentare. Mein pattern dafür war:
"(\".*\")"
Stimmt aber so nicht ganz, weil ja das LÄNGSTE zutreffende pattern genommen wird.
-> alles zwischen dem 1. und letzten " im gesamten code ist futsch.
Daher meine Frage: gibt es ein pattern was einen einzelnen hart codierten String repräsentiert? Also klar gibt es mit Sicherheit, aber nur komm ich durch den Sonderfall, dass " ja auch escape char ist nicht auf eine geeignete Lösung.
Anm.: Whitespaces sind zu dem Zeitpunkt schon entfernt.
ich habe ein sehr spezielles Problem bezüglich Regular Expressions. Was ich machen möchte ist ein Lines-of-Code Counter für java Programme. Erstmal egal wie ich die zählen möchte, aber zuerst entferne ich jegliche Art von Whitespaces und Single-Line / Multi-Line-Comments.
Mit letzterem trat das Problem auf, dass falls ich Strings im source code fest codiert hab mit "..." hat er dort manchmal auch das pattern für Kommentare gefunden und alles danach entfernt. Meine Lösung dafür war erstmal: ersetze alles zwischen "" durch einen default-String (zum LOC zählen ja irrelevant was drin ist) und lösche dann erst Kommentare. Mein pattern dafür war:
"(\".*\")"
Stimmt aber so nicht ganz, weil ja das LÄNGSTE zutreffende pattern genommen wird.
-> alles zwischen dem 1. und letzten " im gesamten code ist futsch.
Daher meine Frage: gibt es ein pattern was einen einzelnen hart codierten String repräsentiert? Also klar gibt es mit Sicherheit, aber nur komm ich durch den Sonderfall, dass " ja auch escape char ist nicht auf eine geeignete Lösung.
Anm.: Whitespaces sind zu dem Zeitpunkt schon entfernt.