- Registriert
- 25.05.08
- Beiträge
- 13
hi..
..vielleicht kennt sich jemand etwas besser mit regex in java aus als ich und kann mir weiter helfen..
kurze beschreibung:
wir sollen ein java-programm schreiben, was studentisch (java) programmierabgaben (halb-/)automatisch korrigiert.. dabei sollen verschiedene tests durchgeführt werden (plagiatsuche, typische fehler, performance test, funktionale test, turniere zwischen abgaben und mehr..).. ein weiterer test soll eine whitelist sein.. bei dieser whitelist werden alle java-abgaben eingeladen, zugelassene imports vom benutzer eingegeben (also import vorgaben des profs, die die studenten beim lösen ihrer aufgabe verwenden müssen (keine anderen!)) und anschließen sollen die abgaben nach den vorgegebenen imports getestet werden.. ich wollte beim zeilenweisen einlesen einer abgabe gleich die zeilen filtern, die im java die imports darstellen... das snipped sieht so aus:
.. mein problem liegt bei dem regex (hab noch nicht viel mit regex gearbeitet)... regex-ausdruck lautet: ^import\\w+\\s+[.\\s+]*;$ und ich interpretiere den so: am zeilenanfang muss import stehen, es dürfen beliebig viele whitespaces folgen, danach muss mindestens eine zeichenkette stehen, dann können 0..* genaue pfadangaben folgen, dann muss ein semikolon folgen und danach das ende der zeile sein... leider geht die regex nicht ... es kommen keine fehler/warnungen o.ä. ... es wir halt nichts ausgegeben... kann da jmd weiterhelfen? ich danke euch schon mal
ps: ich habe schon google befragt
..vielleicht kennt sich jemand etwas besser mit regex in java aus als ich und kann mir weiter helfen..
kurze beschreibung:
wir sollen ein java-programm schreiben, was studentisch (java) programmierabgaben (halb-/)automatisch korrigiert.. dabei sollen verschiedene tests durchgeführt werden (plagiatsuche, typische fehler, performance test, funktionale test, turniere zwischen abgaben und mehr..).. ein weiterer test soll eine whitelist sein.. bei dieser whitelist werden alle java-abgaben eingeladen, zugelassene imports vom benutzer eingegeben (also import vorgaben des profs, die die studenten beim lösen ihrer aufgabe verwenden müssen (keine anderen!)) und anschließen sollen die abgaben nach den vorgegebenen imports getestet werden.. ich wollte beim zeilenweisen einlesen einer abgabe gleich die zeilen filtern, die im java die imports darstellen... das snipped sieht so aus:
while((line = buffer.readLine()) != null){
if (line.length() > 0) {
if (line.contains(String.valueOf(Pattern.compile("^import\\w+\\s+[.\\s+]*;$")))) {
result.append(line + "\r\n");
}
}
}
.. mein problem liegt bei dem regex (hab noch nicht viel mit regex gearbeitet)... regex-ausdruck lautet: ^import\\w+\\s+[.\\s+]*;$ und ich interpretiere den so: am zeilenanfang muss import stehen, es dürfen beliebig viele whitespaces folgen, danach muss mindestens eine zeichenkette stehen, dann können 0..* genaue pfadangaben folgen, dann muss ein semikolon folgen und danach das ende der zeile sein... leider geht die regex nicht ... es kommen keine fehler/warnungen o.ä. ... es wir halt nichts ausgegeben... kann da jmd weiterhelfen? ich danke euch schon mal
ps: ich habe schon google befragt