Ruby String enthält ein Substring

Ruby String enthält ein Substring
Saiten sind grundlegende Bausteine ​​in allen Programmiersprachen. Jeder Programmierer sollte ein solides Verständnis für die Arbeit mit Saiten haben und komplexe Operationen ausführen.

Eine typische Operation bei der Arbeit mit Zeichenfolgen bestimmt, ob eine Zeichenfolge ein bestimmtes Substring enthält. Sie können diese Methoden verwenden, um die Eingaben von Benutzern zu lokalisieren und zu desinfizieren, wodurch ein böswilliger Code verhindert wird.

In diesem Tutorial zeigen wir Ihnen, wie Sie feststellen, ob eine Zeichenfolge ein bestimmtes Substring enthält.

Ruby inklusive? Methode

Der einfachste Weg zu finden, ob ein bestimmter Substring in einer anderen Zeichenfolge verwendet wird, besteht darin? integrierte Methode.

Hier ist ein Beispiel:

str = '
Die Info:

''
Wenn Str.enthalten?("Post")
setzt "Richtige HTTP -Methode -> Post"
anders
Stellt "falsche HTTP -Methode" ein
Ende

Im obigen Beispiel haben wir ein einfaches Programm, das Informationen aus einer HTML -Formeingabe enthält. Wir überprüfen, ob das Formular eine Post -Methode mithilfe der Include -Methode enthält.

Da der Rückgabewert der Methode ein boolescher wahr oder falsch ist, wenn das Substring verfügbar ist bzw. nicht, implementieren wir eine if… else -Anweisung, um entsprechend zu handeln.

Die Beispielausgabe aus dem obigen Skript ist wie gezeigt:

$ Ruby Substring.rb
Korrigieren Sie die HTTP -Methode -> Post

Wenn wir die Formulardaten ersetzen und die Methode auf einen GET einstellen, können wir den else -block als:

str = '
Die Info:

''
Wenn Str.enthalten?("Post")
setzt "Richtige HTTP -Methode -> Post"
anders
Stellt "falsche HTTP -Methode" ein
Ende

Wir führen das Skript als:

$ Ruby Substring.rb
Falsche HTTP -Methode

Ein Nachteil des Include? Methode ist es, wenn es sich um Fallempfindungen handelt. Dies bedeutet, dass Post und Post einen falschen Wert zurückgeben.

Zum Beispiel:

STR = 'Post'
Wenn Str.enthalten?("Post")
setzt "Richtige HTTP -Methode -> Post"
anders
Stellt "falsche HTTP -Methode" ein
Ende

Wenn wir das obige Beispiel ausführen, sollten wir eine Ausgabe aus dem Elend -Block erhalten wie:

$ Ruby Substring.rb
Falsche HTTP -Methode

Um dies zu überwinden, können wir zuerst die gesamte Zeichenfolge in den unteren Fall oder Großbuchstaben konvertieren und dann überprüfen, ob sich das Substring innerhalb der Hauptzeichenfolge befindet.

Hier ist ein Beispiel:

STR = 'Post'
if (str.enthalten?("Post".oben)))
setzt "Richtige HTTP -Methode -> Post"
anders
Stellt "falsche HTTP -Methode" ein
Ende

In diesem Beispiel konvertieren wir das Substring in Großbuchstaben, das der Hauptzeichenfolge entspricht, und überprüfen den Wert.

$ Ruby Substring.rb
Korrigieren Sie die HTTP -Methode -> Post

Verwenden von Regex

Wir können Regex verwenden, um zu überprüfen, ob eine Zeichenfolge ein bestimmtes Substring enthält. Ruby kehrt NIL zurück, wenn das angegebene reguläre Expressionsmuster in der Zeichenfolge nicht innerhalb der Zeichenfolge liegt.

Zum Beispiel:

str = '
Die Info:

''
setzt Str = ~ /post /

Im obigen Beispiel verwenden wir einen einfachen regulären Ausdruck, um zu überprüfen, ob die Zeichenfolge das Substring "Post" enthält.

Wenn wir das Skript oben ausführen, sollten wir eine ähnliche Ausgabe wie unten erhalten:

$ Ruby Substring.rb
33

Der Rückgabewert des regulären Ausdrucks ist der Anfangsindex, in dem der Match -Fall gefunden wird. In unserem Beispiel beginnt die Post -Zeichenfolge aus dem Index 33. Wir können verifizieren wie:

str = '…
stellt Str [33… 36]

Im obigen Beispiel starten wir den Anfangsindex, in dem die Zeichenfolge festgestellt wird, um die Länge des Substring zu entsprechen:

$ Ruby Substring.rb
Post

Ruby String Element Referenz []

Wir können auch die Ruby -String -Referenzmethode verwenden. Wir können entweder eine Zeichenfolge, einen Indexwert oder einen regelmäßigen Ausdruck in einem Paar quadratische Klammern übergeben.

Beispiel Verwendung:

STR = 'Post'
setzt Str ['Post']
stellt Str ['nicht gegründet']

Wenn wir das obige Beispiel ausführen, sollten wir eine Ausgabe als:

=> Post
=> nil

Wenn das Substring verfügbar ist, gibt es die tatsächliche Zeichenfolge zurück. Es wird jedoch Nil zurückgeben, wenn kein Substring vorhanden ist.

Der gleiche Fall gilt für reguläre Ausdrücke.

STR = 'Post'
stellt Str [/post/]
=> Post

Wir können auch die obige Methode verwenden, um ein Substring zu extrahieren. Um beispielsweise 10 Zeichen nach der Übereinstimmung zu extrahieren, können wir dies tun:

STR = 'Post ------ String fährt hier fort.'
setzt Str [str = ~ /String /, 9]

Das obige Beispiel wird nach dem Index, in dem sich die Übereinstimmung befindet.

Abschluss

In diesem Handbuch haben Sie gelernt, wie man überprüft? Methode, reguläre Ausdrücke und String -Elementreferenz.