Regex match ODER so?
Was ist regex?
Entsprechen, wenn der string
- NICHT ( endet in .php ODER endet .html ODER enthält /)
Danke!
Edit: ich brauche das Teil NICHT, da der Ausdruck wird zur Verwendung auf einem Apache-mod-rewrite, da kann ich es nicht ändern, die Logik der mod _rewrite zu vermeiden, die NICHT.
Edit: Meine anfängliche Aufwand war ([^/]+)(.html)$(^.php)$ - das ist monstrusly falsch
Welche Anstrengungen haben Sie in so weit?
([^/]+)(\.html)$(^\.php)$ - das ist monstrusly falsch
Es ist immer noch gut, um es in der Frage, um zu zeigen, dass Sie haben sich die Mühe gemacht.
Hinzugefügt, danke
Bitte, für die Liebe alles, was gut ist. Verwenden Sie die Format-Eigenschaften! 🙂
([^/]+)(\.html)$(^\.php)$ - das ist monstrusly falsch
Es ist immer noch gut, um es in der Frage, um zu zeigen, dass Sie haben sich die Mühe gemacht.
Hinzugefügt, danke
Bitte, für die Liebe alles, was gut ist. Verwenden Sie die Format-Eigenschaften! 🙂
InformationsquelleAutor johnjohn | 2010-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Apache mod_rewrite hat Unterstützung negation, nach dieses Dokument.
So dass Sie sollten in der Lage sein, etwas zu tun:
Und das sollte mit dem übereinstimmen, was nicht enthalten /und noch nicht zu Ende .php-oder .html -
Kein problem, wir sind alle immer lernen. 🙂
Ist es möglich, fügen Sie diese variable jetzt ? Ich habe versucht, RewriteRule !^(.*?/.*|.*?\.(?:php|html)$)$ headers.php?a=$1 [NC,L], aber es wird nicht die variable übergeben
Ich denke, da wirst du eine negative überein, gibt es keine direkte Möglichkeit für die Gruppe zu passen, da hast du passende Dinge, die möglicherweise nicht mit der Gruppe, so brauchen wir eine nicht-negierte match, das ausschließt, was Sie wollen. Ich kann mich nicht erinnern, ob mod_rewrite unterstützt negative lookbehind, aber versuchen Sie, diese
RewriteRule ^([^/]*(?<!\.html$)(?<!\.php$))$ headers.php?a=$1 [NC,L]
und sehen, ob es funktioniert?InformationsquelleAutor Peter Boughton
Es ist einfacher, eine ganze Menge zu tun positive Treffer im regex als negative übereinstimmungen. Versuchen Sie eine Suche für
ends in .php OR ends in .html OR contains /
und Umgekehrt die Logik in Ihrem Programm.Mit streng reguläre Ausdrücke, gibt es nicht eine Allgemeine Art und Weise zu negieren, einen bestimmten Ausdruck. Mit PCRE ist, haben Sie den Vorteil der negative look-aheads, die erheblich vereinfachen den Prozess der Konstruktion negiert suchen, auf Kosten der Leistung.
John, sollte diese information in die Frage!
Boughton : Hinzugefügt, danke
Sieht aus wie mod_rewrite macht der negation - und ich habe eine passende Antwort für das - aber ich würde wohl noch gehen mit dem Ausdruck Eclipse hat gerade Hinzugefügt haben.
InformationsquelleAutor Eclipse
Verwenden Sie diese regex -
oops! kann schlecht. lassen Sie mich update meine regex
InformationsquelleAutor Gopi