![]() |
[PHP] PCRE und optionales
Hi,
ich habe das selbe Problem bei zwei verschiedenen Websiten. Beim ersten geht es um einen ![]()
Code:
Funktioniert auch ganz gut.
preg_match("/^(.*)(L|G)(\d*|.*)$/i",$row["charKursNr"],$fach);
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:
Allerdings suche ich jetzt nach einer Lösung, wie ich das Protokoll optional machen kann.
$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>'"; Also, dass
Code:
kommen kann, aber nicht muss.
[\w]+?://
Hoffentlich ist mein Problem einigermaßen verständlich angekommen. ;) Hat jemand für das Problem/die Probleme eine Lösung? Chris |
Re: [PHP] PCRE und optionales
Hi,
zu den URLs ist mir noch eine Idee bekommen. Wie wärs, wenn du einfach prüfst, ob ein Protokoll vorangestellt ist, und wenn nicht, dann hängst du einfach eines dran. Ist zwar nicht direkt mit RegEx gelöst, aber es sollte gehen... mfG mirage228 |
Re: [PHP] PCRE und optionales
Hi,
hmm... das muss aber einfacher gehen. :gruebel: Es muss ja irgendwie gehen. ;) Laut der PHP-Dokumentation muss ich ein ? dahinter setzen, aber das funktioniert in keinem der beiden Fälle. :gruebel: Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz