Über reguläre Ausdrücke in Ruby

Informationen zu regulären Ruby-Ausdrücken In Bezug auf die regulären Ausdrücke, die ich neulich im Lehrplan gelernt habe, befand ich mich in einem Zustand, in dem "viele Codes geschrieben sind ...", und schrieb einen Artikel, der auch als "Organisation dessen, was ich gelernt habe" und "Ausgabe des Lernens" dient.
  • Was ist ein regulärer Ausdruck?

Dies ist eine der Methoden, um einen Satz von Zeichenfolgen als eine Zeichenfolge auszudrücken. Diese Übersetzung wird auch als regulärer Ausdruck bezeichnet und wird im Bereich der formalen Sprachtheorie relativ häufig verwendet. In seltenen Fällen wird es auch als normaler Ausdruck bezeichnet. (Auszug aus Wikipedia https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE)

Es ist schwer zu verstehen, ob es nur so ist. Wenn ich also die Anwendung berühre, gibt es viele Dinge wie "Wenn das Passwort weniger als 6 Zeichen enthält, können Sie sich nicht registrieren" oder "Wenn die Telefonnummer einen Bindestrich enthält ...". Wie treffen Sie diese Entscheidung?

Zum Beispiel bei der Registrierung einer Telefonnummer

id name tel
1 Herr A. 090-0000-0000
2 Herr B. 09000000000

Herr A → Mit Bindestrich registrieren Herr B → Registrieren Sie sich ohne Bindestrich

Eine solche Situation ist geboren. In diesem Fall wird es in einem anderen Format verwaltet, sodass es einfacher zu verwalten ist, wenn es einheitlich ist. Zu diesem Zeitpunkt "Löschen Sie zusätzliche Bindestriche! ], Es wird einfacher zu verwalten sein. Auf diese Weise "Ob die Zeichenfolge ein bestimmtes Zeichen enthält?" Und die Technologie, die eine Verarbeitung wie "Entfernen eines bestimmten Zeichens" durchführt, ist ein regulärer Ausdruck. Reguläre Ausdrücke können durch ähnlichen Code in verschiedenen Sprachen dargestellt werden. Wenn Sie sich also an die Form erinnern, können Sie sie auf andere Sprachen anwenden.

  • Methode für reguläre Ausdrücke

In Ruby sind die folgenden drei Methoden hauptsächlich wichtig und werden häufig verwendet.

Untermethode Diese Methode ersetzt den angegebenen Teil einer Zeichenfolge durch eine andere Zeichenfolge. Verwenden Sie beispielsweise den folgenden Code.
 greeting = "Hello,world"
=>"Hello,world"

 greeting.sub(/Hello/,"Good morning")
=>"Good morning,world" 

Ich konnte die Zeichenfolge "Hallo" in / durch "Guten Morgen" ersetzen.

muchch-Methode Mit dieser Methode wird bestimmt, ob die im Argument angegebene Zeichenfolge in der aufgerufenen Zeichenfolge enthalten ist.
 greeting = "Hello,world"
=>"Hello,world"

 greeting.mutch(/Hello/)
=> #<MatchData "Hello">

greeting.match(/Good morning/)
=> nil 

Wie oben erwähnt, lautet die der Begrüßung zugewiesene Zeichenfolge "Hallo Welt". Wenn das Argument also in der Übereinstimmungsmethode durch / Hallo / angegeben wird, wird "Hallo" als MatchDate bezeichnet. Wenn das Argument jedoch als / Guten Morgen / angegeben ist, wird die Zeichenfolge nicht in die zugewiesene Zeichenfolge aufgenommen, sodass "nil" angezeigt wird.

gsub-Methode Wie die Submethode ist sie eine Methode zum Ersetzen einer Zeichenfolge, aber durch Hinzufügen von g (globale Methode) kann die angegebene Zeichenfolge in der Zeichenfolge hinzugefügt werden. Wenn mehr als eine enthalten ist, hat sie die Aufgabe, alle zu ersetzen. Nehmen Sie als Beispiel eine Telefonnummer
telA = '090-0000-0000'
=> "090-00000-0000"

telA.gsub(/-/,'')
=> "090000000000"

Auf diese Weise konnte ich den von / umgebenen Bindestrich entfernen. Wie oben beschrieben, können Sie die Zeichenfolge einschränken, indem Sie die zu entfernende Zeichenfolge oder die in die Methode aufzunehmende Zeichenfolge angeben. Die Beschreibungsmethode für die Angabe ist unten zusammengefasst. Bitte beziehen Sie sich darauf, wenn Sie die Möglichkeit haben, sie zu verwenden.

Muster Bedeutung
[a-z] Entspricht einem der Buchstaben a bis z
\d Übereinstimmungsnummern
[a-z\d] Ordnen Sie einem der alphanumerischen Zeichen zu
{n,m} Entspricht dem vorherigen Zeichen, das mindestens n-mal und höchstens m-mal erscheint
i Suchen ohne zwischen Groß- und Kleinschreibung zu unterscheiden (am Ende hinzufügen)
. Entspricht einem einzelnen Zeichen
+ Das vorherige Zeichen entspricht einer oder mehreren Wiederholungen
\A Das Zeichen unmittelbar danach stimmt mit der Zeichenfolge am Anfang überein
\z Ordnen Sie das vorherige Zeichen der letzten Zeichenfolge zu
[Ah-Hmm-Einer-龥] Entspricht Kana, Kana oder Kanji, umgeben von eckigen Klammern
?= Entspricht der Zeichenfolge unmittelbar nach dem festgelegten Zeichen
*? Überprüfen Sie die Zeichenkette, die der Zeichensatz unmittelbar zuvor mindestens 0 Mal fortgesetzt hat.?Gibt ein Zeichen zurück, wenn das Zeichen unmittelbar danach angezeigt wird
/\A(?=.?[a-z])(?=.?[\d])[a-z\d]+\z/i Es beginnt mit einem beliebigen Zeichen 0 oder mehr und beginnt mit alphanumerischen Zeichen und endet mit einer oder mehreren aufeinanderfolgenden alphanumerischen Zeichenfolgen. Dabei wird die Groß- und Kleinschreibung nicht berücksichtigt (kann verwendet werden, wenn gemischte alphanumerische Kennwörter usw. überprüft werden). )

Recommended Posts