Il Blog di Shift

Pensieri e parole dal mondo dell'informatica

Mustertext angebot

Java bietet auch Unterstützung für Musterabgleich über verschiedene Methoden in seiner java.lang.String-Klasse. Boolean matches (String regex) gibt z. B. nur dann true zurück, wenn die aufrufende Zeichenfolge genau mit dem Regex-Regex übereinstimmt. In der Einleitung haben Sie gelernt, dass grep für “global regular expression print” steht. Ein “regulärer Ausdruck” ist eine Textzeichenfolge, die ein bestimmtes Suchmuster beschreibt. Das erste, was die main() Methode von RegexDemo tut, ist, die Befehlszeile zu überprüfen. Dies erfordert zwei Argumente: Das erste Argument ist ein Regex, und das zweite Argument ist Eingabetext, der mit dem Regex abgeglichen werden soll. Wie `*` entspricht auch der Modifikator `-` null oder mehr Vorkommen von Zeichen der ursprünglichen Klasse.

Anstatt jedoch mit der längsten Sequenz zu übereinstimmen, entspricht sie der kürzesten Sequenz. Manchmal gibt es keinen Unterschied zwischen `*` oder `-`, aber in der Regel stellen sie ziemlich unterschiedliche Ergebnisse dar. Wenn Sie beispielsweise versuchen, einen Bezeichner mit dem Muster `[_%a][_%w]-` zu finden, finden Sie nur den ersten Buchstaben, da `[_%w]-` immer mit der leeren Sequenz übereinstimmt. Angenommen, Sie möchten Kommentare in einem C-Programm finden. Viele Leute würden zuerst `/%*.*%*/` ausprobieren (d. h. ein “/*” gefolgt von einer Sequenz von beliebigen Zeichen, gefolgt von “*/”, geschrieben mit den entsprechenden Escapes). Da sich das `.*` jedoch so weit wie möglich ausdehnt, würde das erste “/*” im Programm nur mit dem letzten “*/” geschlossen: extrahiert übereinstimmende Muster aus den Texten und speichert in Docvars, wenn TRUE Dieses Beispiel .ox als Regex angibt und der schnelle braune Fuchs springt über den faulen Ochsen. als Eingabetext.

RegexDemo sucht den Text nach Übereinstimmungen, die mit einem beliebigen Zeichen beginnen und mit Ochsen enden. Es erzeugt die folgende Ausgabe: Um sicherzustellen, dass die Doppelanführungszeichen nicht Teil der Übereinstimmung sein können, muss der Punkt ersetzt werden (z.B. “[“]*”). Dies entspricht einem zitierten Textteil ohne zusätzliche Doppelzitate. (Durch das Entfernen von Möglichkeiten für ein festes Suffix, das abgeglichen werden soll, verwandelt man auch das Lazy-Match in ein gieriges Match.) [Zitat erforderlich] Die Textsuche in gemischter Sprache oder die Textsuche in unbekannter Sprache wird durch die Volltextsuche unterstützt, jedoch nur, wenn Sie das einfache Wörterbuch verwenden. Heute werden Regexe in Programmiersprachen, Textverarbeitungsprogrammen (insbesondere Lexern), erweiterten Texteditoren und einigen anderen Programmen weithin unterstützt. Die Regex-Unterstützung ist Teil der Standardbibliothek vieler Programmiersprachen, einschließlich Java und Python, und ist in die Syntax anderer, einschließlich Perl und ECMAScript, integriert. Implementierungen der regex-Funktionalität werden häufig als Regex-Engine bezeichnet, und eine Reihe von Bibliotheken stehen zur Wiederverwendung zur Verfügung.

I commenti sono chiusi

Tema di Anders Norén