|
[SOLVED]: RegEx: Matching-Null?
Ich bin mit der URL Regex-Funktion von Squid für die Seiten über eine Liste der regulären Ausdrücke an Domains zugelassen. Die regex wurde aus unserem vorherigen Proxy-Lösung, und es schien, um "einfach funktionieren". Aber wir haben vor kurzem entdeckt, dass einige Bereiche (wahrscheinlich auf virtuelle Hosts oder Host-Header je nach Konfiguration, wenn es Apache oder IIS bzw.) fehl, wenn sie verwendet werden, ohne das Präfix "www" in der URL. Unten ist ein Beispiel dafür, was manchmal funktioniert:
Code:
http://.*\.microsoft\.com/.*
Das ".* \." vor dem "Microsoft \. com" bedeuten sollte, eine beliebige Anzahl von beliebigen Zeichen (Null oder mehr), gefolgt von einem "." Ich sehe den Fehler in Bezug auf die '\'. Teil des Plans regex und korrigiert werden. Aber ich habe nicht in der Lage, einen Weg finden, um sowohl "www.microsoft.com" und "microsoft.com". Hier ist es, was ich dachte, würde:
Code:
http://[!.*|.*\.]microsoft\.com/.*
Ich gebe zu, ich wirklich schlecht mit regex, so wenden Sie sich bitte nicht zu hart über mich bitte. Ich habe einfach nie in der Lage, "Get it" 100%. Unnötig zu sagen, dass die oben bei mir nicht funktioniert auf allen. Es entspricht weder "microsoft.com" oder "www.microsoft.com". Ich habe versucht einige Tests mit 'grep', um zu versuchen, eine angemessene Lösung finden. Aber, was ist es, dass ich wirklich versucht, zusammen? Auf den ersten, bin ich davon ausgegangen, wollte ich ein Leerzeichen, aber ich bin nicht der Suche nach "microsoft.com". Dann dachte ich, eine Null? Aber das scheint nicht zu passen, da es nicht wirklich ein Spiel auf allen da gibt es keine Zeichen gibt. Ich bin mir sicher, dass jemand, der ist ein Experte auf regex würde sich in diesem und etwas wahnsinnig einfach. Ich weiß es wirklich nicht will, dies zu tun:
Code:
http://[.*\.microsoft\.com/.*|microsoft\.com/.*]
oder noch schlimmer, dieses:
Code:
http://.*\.microsoft\.com/.*
http://microsoft\.com/.*
Haben Sie Vorschläge? Vielen Dank im Voraus ...
Zuletzt bearbeitet von Deckard; am 06-05-2008 11:57 AM.. Grund: eine Lösung für das Problem.
|