Funktionsweise von Zeichenfolgenabgleich mit Mustersätzen und Datensätzen
Ein Mustersatz oder ein Datensatz enthält einen Satz von Mustern, und jedem Muster wird ein eindeutiger Index zugewiesen. Wenn eine Richtlinie auf ein Paket angewendet wird, identifiziert ein Ausdruck eine Zeichenfolge, die ausgewertet werden soll, und der Operator vergleicht die Zeichenfolge mit den Mustern, die im Mustersatz oder im Datensatz definiert sind, bis eine Übereinstimmung gefunden oder alle Muster verglichen wurden. Anschließend gibt der Operator je nach Funktion entweder einen booleschen Wert zurück, der angibt, ob ein übereinstimmendes Muster gefunden wurde oder nicht, oder den Index des Musters, das mit der Zeichenfolge übereinstimmt.
Hinweis: In diesem Thema wird die Arbeit eines Mustersatzes erläutert. Datensätze funktionieren auf die gleiche Weise. Der einzige Unterschied zwischen Mustersätzen und Datensätzen ist die Art der Muster, die in der Menge definiert sind.
Betrachten Sie den folgenden Anwendungsfall, um zu verstehen, wie Muster für String-Matching verwendet werden können.
Sie möchten ermitteln, ob das URL-Suffix (Zieltext) eine der Bilddateierweiterungen enthält. Ohne Mustersätze zu verwenden, müssten Sie einen komplexen Ausdruck wie folgt definieren:
HTTP.REQ.URL.SUFFIX.CONTAINS("svg") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("bmp") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("png") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("gif") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("tiff") ¦¦ HTTP.REQ.URL.SUFFIX.CONTAINS("jpg")
Wenn die URL das Suffix jpg mit dem obigen zusammengesetzten Ausdruck aufweist, muss die Citrix ADC Appliance den gesamten zusammengesetzten Ausdruck sequenziell von einem Unterausdruck zum nächsten durchlaufen, um festzustellen, dass sich die Anforderung auf ein jpg-Bild bezieht. Die folgende Abbildung zeigt die Schritte im Prozess.
![lokalisierte Grafik](https://docs.citrix.com/en-us/citrix-adc/media/without_patterns.png)
Wenn ein zusammengesetzter Ausdruck Hunderte von Unterausdrücken enthält, ist der obige Prozess ressourcenintensiv. Eine bessere Alternative ist ein Ausdruck, der einen Mustersatz aufruft, wie in der folgenden Abbildung gezeigt.
![lokalisierte Grafik](https://docs.citrix.com/en-us/citrix-adc/media/with_patterns.png)
Während der Richtlinienauswertung, wie oben dargestellt, vergleicht der Operator (CONTAINS_ANY) die in der Anforderung identifizierte Zeichenfolge mit den Mustern, die im Mustersatz definiert sind, bis eine Übereinstimmung gefunden wird. Mit dem Sample_Patset-Ausdruck werden die mehrfachen Iterationen durch sechs Unterausdrücke auf nur einen reduziert.
Da keine Notwendigkeit besteht, zusammengesetzte Ausdrücke zu konfigurieren, die String-Matching mit mehreren ODER Operationen durchführen, vereinfachen Mustersätze oder Datensätze die Konfiguration und beschleunigen die Verarbeitung von Anfragen und Antworten.
死offizielle版本这本目录ist auf Englisch. Für den einfachen Einstieg wird Teil des Inhalts der Cloud Software Group Dokumentation maschinell übersetzt. Cloud Software Group hat keine Kontrolle über maschinell übersetzte Inhalte, die Fehler, Ungenauigkeiten oder eine ungeeignete Sprache enthalten können. Es wird keine Garantie, weder ausdrücklich noch stillschweigend, für die Genauigkeit, Zuverlässigkeit, Eignung oder Richtigkeit von Übersetzungen aus dem englischen Original in eine andere Sprache oder für die Konformität Ihres Cloud Software Group Produkts oder Ihres Diensts mit maschinell übersetzten Inhalten gegeben, und jegliche Garantie, die im Rahmen der anwendbaren Endbenutzer-Lizenzvereinbarung oder der Vertragsbedingungen oder einer anderen Vereinbarung mit Cloud Software Group gegeben wird, dass das Produkt oder den Dienst mit der Dokumentation übereinstimmt, gilt nicht in dem Umfang, in dem diese Dokumentation maschinell übersetzt wurde. Cloud Software Group kann nicht für Schäden oder Probleme verantwortlich gemacht werden, die durch die Verwendung maschinell übersetzter Inhalte entstehen können.
DIESER DIENST KANN ÜBERSETZUNGEN ENTHALTEN, DIE VON GOOGLE BEREITGESTELLT WERDEN. GOOGLE LEHNT JEDE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG IN BEZUG AUF DIE ÜBERSETZUNGEN AB, EINSCHLIESSLICH JEGLICHER GEWÄHRLEISTUNG DER GENAUIGKEIT, ZUVERLÄSSIGKEIT UND JEGLICHER STILLSCHWEIGENDEN GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER.
CE SERVICE PEUT CONTENIR DES TRADUCTIONS FOURNIES PAR GOOGLE. GOOGLE EXCLUT TOUTE GARANTIE RELATIVE AUX TRADUCTIONS, EXPRESSE OU IMPLICITE, Y COMPRIS TOUTE GARANTIE D'EXACTITUDE, DE FIABILITÉ ET TOUTE GARANTIE IMPLICITE DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON.
ESTE SERVICIO PUEDE CONTENER TRADUCCIONES CON TECNOLOGÍA DE GOOGLE. GOOGLE RENUNCIA A TODAS LAS GARANTÍAS RELACIONADAS CON LAS TRADUCCIONES, TANTO IMPLÍCITAS COMO EXPLÍCITAS, INCLUIDAS LAS GARANTÍAS DE EXACTITUD, FIABILIDAD Y OTRAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN EN PARTICULAR Y AUSENCIA DE INFRACCIÓN DE DERECHOS.
本服务可能包含由 Google 提供技术支持的翻译。Google 对这些翻译内容不做任何明示或暗示的保证,包括对准确性、可靠性的任何保证以及对适销性、特定用途的适用性和非侵权性的任何暗示保证。
このサービスには、Google が提供する翻訳が含まれている可能性があります。Google は翻訳について、明示的か黙示的かを問わず、精度と信頼性に関するあらゆる保証、および商品性、特定目的への適合性、第三者の権利を侵害しないことに関するあらゆる黙示的保証を含め、一切保証しません。
ESTE SERVIÇO PODE CONTER TRADUÇÕES FORNECIDAS PELO GOOGLE. O GOOGLE SE EXIME DE TODAS AS GARANTIAS RELACIONADAS COM AS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER GARANTIA DE PRECISÃO, CONFIABILIDADE E QUALQUER GARANTIA IMPLÍCITA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO.