Hi.
also ich programmier an dem Stundenplan-Script für unsere Fachbereichs-Community (et-jena.de)
Wir haben von der Fachhochschule eine URL, wo quasi die Rohdaten für alle Veranstaltungen der FH drin sind, welche wir dann parsen und in unsere MySQL-Tabelle speichern.
Durch die Umstellung von Diplom auf Bachelor und Master gibt es momentan Bachelor-, Master- und Diplom-Studiengänge parallel und die Semester- und Set-Bezeichnungen in den verschiedenen Bereichen Variieren demzufolge ein wenig...
daher hab ich zum Filtern einen regulären Ausdruck benutzt, der - auf die Textdatei angewendet - auch super funktioniert.
wenn ich jetzt jedoch den Ausdruck im mysql_query("select * from `stundenplan` where `sets` regexp '$regexp'") unterbringen will, dann findet er nur noch die Veranstaltungen, wo "ET7." drin vorkommt - ET(BA)1 / ET(BA)3 und ET(MA)1 findet er nicht...
Wenn ich statt dessen aus den \( und \) einen Punkt mache (also ein einzelnes beliebiges Zeichen), dann funktioniert es wieder. (jedoch lauf ich Gefahr, dass der Ausdruck zuviel anzeigen würde, wenn es mal einen anderen Studiengang an der FH geben wird, der mit "ET"+weitere beliebige Zeichen beginnt....)
Nun die Frage: wie kann ich in dem mysql regexp runde Klammern escapen, damit sie als festgesetzter Inhalt des Strings gewertet werden???
Hab schon ne Weile gegoogelt, jedoch bis jetzt leider nichts gefunden....
edit:
hab über et-jena einen Tipp bekommen, der funktioniert hat:
linke Klammer:
rechte Klammer:
das kannte ich bis gerade eben noch nicht.... hat wunderbar geholfen.
also ich programmier an dem Stundenplan-Script für unsere Fachbereichs-Community (et-jena.de)
Wir haben von der Fachhochschule eine URL, wo quasi die Rohdaten für alle Veranstaltungen der FH drin sind, welche wir dann parsen und in unsere MySQL-Tabelle speichern.
Durch die Umstellung von Diplom auf Bachelor und Master gibt es momentan Bachelor-, Master- und Diplom-Studiengänge parallel und die Semester- und Set-Bezeichnungen in den verschiedenen Bereichen Variieren demzufolge ein wenig...
daher hab ich zum Filtern einen regulären Ausdruck benutzt, der - auf die Textdatei angewendet - auch super funktioniert.
Code:
(ET(\([a-zA-Z]*\))?[0-9])\.([0-9]*)(\([A-Za-z0-9]*\))
wenn ich jetzt jedoch den Ausdruck im mysql_query("select * from `stundenplan` where `sets` regexp '$regexp'") unterbringen will, dann findet er nur noch die Veranstaltungen, wo "ET7." drin vorkommt - ET(BA)1 / ET(BA)3 und ET(MA)1 findet er nicht...
Wenn ich statt dessen aus den \( und \) einen Punkt mache (also ein einzelnes beliebiges Zeichen), dann funktioniert es wieder. (jedoch lauf ich Gefahr, dass der Ausdruck zuviel anzeigen würde, wenn es mal einen anderen Studiengang an der FH geben wird, der mit "ET"+weitere beliebige Zeichen beginnt....)
Nun die Frage: wie kann ich in dem mysql regexp runde Klammern escapen, damit sie als festgesetzter Inhalt des Strings gewertet werden???
Hab schon ne Weile gegoogelt, jedoch bis jetzt leider nichts gefunden....
edit:
hab über et-jena einen Tipp bekommen, der funktioniert hat:
linke Klammer:
Code:
[[.left-parenthesis.]]
rechte Klammer:
Code:
[[.right-parenthesis.]]
das kannte ich bis gerade eben noch nicht.... hat wunderbar geholfen.