[RAILS] Ruby regulärer Ausdruck

Was ist ein regulärer Ausdruck?

-Ersetzen Sie einen Teil der Zeichenfolge ・ Extrahieren Sie einen Teil der Zeichenfolge -Überprüfen Sie, ob die Zeichenfolge die Einschränkungen erfüllt

Die Technik zum Ausführen von Operationen wie ist ein regulärer Ausdruck.

Die meisten Beschreibungen regulärer Ausdrücke können von jeder Sprache geteilt werden.

Methoden- und Anwendungsbeispiel

Untermethode

Ersetzen Sie den angegebenen Teil der Zeichenfolge durch eine andere Zeichenfolge </ font>

irb(main):001:0> str = "Iss einen Apfel"
=> "Iss einen Apfel"

irb(main):002:0> str.sub(/Apfel/,"Orange")
=> "Iss Orange"

Die Zeichenfolge "Apfel essen" ist der Variablen str zugeordnet.

Als nächstes wird für str die Untermethode verwendet, und Apple wird als erstes Argument und Orange als zweites Argument angegeben.

Bei der Ausgabe soll es Äpfel → Orangen essen.

Schließen Sie auf diese Weise ** die Zeichenfolge, die Sie durch das erste Argument ersetzen möchten, in "/ (Schrägstrich)" ein und geben Sie die konvertierte Zeichenfolge als zweites Argument an. ** ** **

Match-Methode

Überprüfen Sie, ob die Zeichenfolge in der Zeichenfolge links von der Methode </ font> enthalten ist


irb(main):001:0> str = "Hello, World"
=> "Hello, World"

irb(main):002:0> str.match(/Hello/)
=> #<MatchData "Hello">

irb(main):003:0> str.match(/Good/)
=> nil

Die Zeichenfolge "Hello, World" ist der Variablen str zugeordnet

Als nächstes wird für str die Übereinstimmungsmethode verwendet und Hello als Argument angegeben.

Da "Hello, world" die angegebene Zeichenfolge "Hello" enthält, erhalten Sie die angegebene Zeichenfolge "Hello" als Rückgabewert des MatchData-Objekts.

Da "Gut" nicht enthalten ist, ist der Rückgabewert Null.

Wie die Submethode enthält auch die Match-Methode das Argument ** in "/ (Schrägstrich)". ** ** **

gsub Methode

Ersetzen Sie alle angegebenen Teile der Zeichenfolge durch eine andere Zeichenfolge </ font>

irb(main):001:0> tel = '080-1234-5678'
=> "080-1234-5678"

irb(main):002:0> tel.sub(/-/,'')
=> "0801234-5678"

irb(main):003:0> tel.gsub(/-/,'')
=> "08012345678"

Die Telefonnummer ist der Variablen tel zugeordnet.

Ich versuche dann, es loszuwerden, indem ich den Bindestrich in der Untermethode durch eine leere Zeichenfolge ersetze, aber nur der erste Bindestrich wird ersetzt.

Verwenden Sie sub, um nur die erste angegebene Zeichenfolge zu ersetzen, gsub, um alle zu ersetzen.

Metazeichen für reguläre Ausdrücke

Metazeichen sind Zeichen mit speziellen Bedeutungen und Funktionen, und durch ihre Verwendung können verschiedene Einschränkungen vorgenommen werden.

Da es viele Typen gibt, werde ich einige davon anhand von Beispielen für Kennwortbeschränkungen vorstellen.

irb(main):001:0> pw = 'Abcd1234'
=> "Abcd1234"

irb(main):002:0> pw.match(/[a-z\d]{8,10}/i)
=> #<MatchData "Abcd1234">

Das obige ist

・ Ein Buchstabe von a bis z, entweder ein Buchstabe oder eine Zahl ・ 8 Zeichen oder mehr und 10 Zeichen oder weniger ・ Zeichen können groß oder klein sein

Ich wende die Einschränkung an.

Ich werde den Inhalt des Arguments zerlegen und die Bedeutung jedes Zeichens erklären

/[a-z\d]{8,10}/i

/ [a-z \ d] {8,10} / i </ font> (Die Zeichenfolge im Schrägstrich kann entweder oben oder unten sein.)

[a-z \ d] {8,10} </ font> (entspricht dem, in dem das vorherige Zeichen 8 bis 10 Zeichen enthält)

[a-z] \ d </ font> (entspricht den Zahlen)

[a-z] </ font> (entspricht einem der Buchstaben a bis z)

  • Dieses Mal sind die Zahlen zusätzlich zu a-z von eckigen Klammern umgeben, sodass sie mit einem der alphanumerischen Zeichen übereinstimmen.)

Zusammenfassung

Art Bedeutung
[ ] Ordnen Sie einem der beiliegenden Zeichen zu
\d Übereinstimmungsnummern
{a,b} Entspricht dem vorherigen Zeichen, das a oder mehr und b oder weniger erscheint
i (Möglichkeit) Groß- und Kleinschreibung wird nicht berücksichtigt

Verschiedene Einschränkungen können implementiert werden, indem die beiden im Grunde eingeführten Methoden mit dem Muster regulärer Ausdrücke kombiniert werden.

Das Muster ist nur ein Beispiel. Es gibt viele andere Dinge, die Sie mit regulären Ausdrücken tun können.

Recommended Posts