webleads-tracker

Mustersuche englisch

In der Informatik sind String-Suchalgorithmen, manchmal auch Als String-Matching-Algorithmen bezeichnet, eine wichtige Klasse von Zeichenfolgenalgorithmen, die versuchen, einen Ort zu finden, an dem eine oder mehrere Zeichenfolgen (auch Muster genannt) in einer größeren Zeichenfolge oder einem größeren Text gefunden werden. Eine einfache und ineffiziente Möglichkeit, um zu sehen, wo eine Zeichenfolge in einer anderen auftritt, besteht darin, jeden Ort, an dem sie sein könnte, nacheinander zu überprüfen, um zu sehen, ob sie da ist. So sehen wir zuerst, ob es eine Kopie der Nadel im ersten Charakter des Heuhaufens gibt; wenn nicht, schauen wir, ob es eine Kopie der Nadel gibt, die beim zweiten Charakter des Heuhaufens beginnt; wenn nicht, schauen wir auf das dritte Zeichen und so weiter. Im Normalfall müssen wir nur ein oder zwei Zeichen für jede falsche Position betrachten, um zu sehen, dass es sich um eine falsche Position handelt, so dass im Durchschnittlichen Fall O(n + m) Schritte erforderlich sind, wobei n die Länge des Heuhaufens und m die Länge der Nadel ist; aber im schlimmsten Fall, auf der Suche nach einer Zeichenfolge wie "aaaab" in einer Zeichenfolge wie "aaaaaaaab", dauert es O(nm) 2. Bewerten Sie die Objektivfunktion an jedem Punkt im Muster. Während Regexe für Internetsuchmaschinen nützlich wären, könnte ihre Verarbeitung in der gesamten Datenbank in Abhängigkeit von der Komplexität und dem Design des Regexs übermäßige Computerressourcen verbrauchen. Obwohl Systemadministratoren in vielen Fällen regex-basierte Abfragen intern ausführen können, bieten die meisten Suchmaschinen der Öffentlichkeit keine Regex-Unterstützung an. Bemerkenswerte Ausnahmen: Google Code Search, Exalead. Die Google Code Search wurde seit Januar 2012 geschlossen. [47] Es wurde ein Trigrammindex verwendet, um Abfragen zu beschleunigen. [48] Ein Regex-Muster entspricht einer Zielzeichenfolge.

Das Muster besteht aus einer Sequenz von Atomen. Ein Atom ist ein einzelner Punkt innerhalb des Regex-Musters, das es mit der Zielzeichenfolge abzugleichen versucht. Das einfachste Atom ist ein Literal, aber das Gruppieren von Teilen des Musters, um einem Atom zu entsprechen, erfordert die Verwendung ( ) als Metazeichen. Metazeichen helfen, sich zu bilden: Atome; Quantifizierer, die sagen, wie viele Atome (und ob es ein gieriger Quantifizierer ist oder nicht); ein logisches ODER-Zeichen, das eine Reihe von Alternativen bietet, und ein logisches NOT-Zeichen, das die Existenz eines Atoms negiert; und Rückenreferenzen, um sich auf frühere Atome eines vervollständigenden Musters von Atomen zu beziehen. Eine Übereinstimmung wird nicht dann vorgenommen, wenn alle Atome der Zeichenfolge übereinstimmen, sondern wenn alle Musteratome im Regex übereinstimmen. Die Idee ist, ein kleines Muster von Zeichen für eine große Anzahl von möglichen Zeichenfolgen stehen zu lassen, anstatt eine große Liste aller wörtlichen Möglichkeiten zu kompilieren. In der Praxis kann die Methode des möglichen Zeichenfolgensuchalgorithmus durch die Zeichenfolgencodierung beeinflusst werden. Insbesondere wenn eine Codierung mit variabler Breite verwendet wird, kann es langsamer sein, das Nth-Zeichen zu finden, was möglicherweise Zeit im Verhältnis zu N erfordert. Dies kann einige Suchalgorithmen erheblich verlangsamen.

Eine von vielen möglichen Lösungen besteht darin, stattdessen nach der Reihenfolge der Codeeinheiten zu suchen, aber dies kann zu falschen Übereinstimmungen führen, es sei denn, die Codierung ist speziell darauf ausgelegt, sie zu vermeiden. [Zitat erforderlich] Die Sprache der Quadrate ist nicht regelmäßig, noch ist sie kontextfrei, aufgrund des pumpenden Lemmas. Musterübereinstimmungen mit einer unbegrenzten Anzahl von Rückverweisen, die von zahlreichen modernen Tools unterstützt werden, sind jedoch weiterhin kontextabhängig. [35] Das allgemeine Problem, eine beliebige Anzahl von Backreferences zu erhalten, ist NP-vollständig, das durch die Anzahl der verwendeten Backref-Gruppen exponentiell wächst. [36] Um die Mustersuche vorzubereiten, laden Sie die Daten in mtWashington.mat, das die USGS-Daten auf einem 472-mal-345-Raster enthält. Die Höhe Z ist in Fuß angegeben. Die Vektoren x und y enthalten die Basiswerte des Rasterabstands in östlicher bzw. nördlicher Richtung.