Hi,
ich habe das selbe Problem bei zwei verschiedenen Websiten.
Beim ersten geht es um einen
Klausurplan. Darin steht die Kursnummer in der Form
Fach + L oder G (Leistungs- oder Grundkurs) + Schuljahr. Wobei das Schuljahr nicht immer da steht. Um den Fachnamen zu erkennen habe ich von einem anderen Schüler folgenden regulären Ausdruck bekommen:
Code:
preg_match("/^(.*)(L|G)(\d*|.*)$/i",$row["charKursNr"],$fach);
Funktioniert auch ganz gut.
Allerdings gibt es seit diesem Schuljahr noch weitere Kurs, in denen zwischen dem Fachnamen und dem L (bzw. dem G) noch ein
e oder ein
z steht, das nicht zum Fachnamen gehört.
Gibt es jetzt eine Möglichkeit PHP zu sagen, dass dieses e/z nur optional da ist?
Ein sehr ähnliches Problem habe ich bei der Erkennung von
URL-Adressen. Generell habe ich folgenden Ausdruck (aus dem phpBB, bekommen von Daniel):
Code:
$match[0] = '#(^|[\n ])([\w]+?://(.*?)[^ \t\n\r<"]*)#ie';
$replace[0] = "'\\1<a href=\"\\2\" target=\"_blank\">' . ((strlen('\\2') > 40) ? substr('\\2', 0, 20) . ' ... ' . substr('\\2', -20) : '\\2') . '</a>'";
Allerdings suche ich jetzt nach einer Lösung, wie ich das Protokoll optional machen kann.
Also, dass
kommen kann, aber nicht muss.
Hoffentlich ist mein Problem einigermaßen verständlich angekommen.
Hat jemand für das Problem/die Probleme eine Lösung?
Chris