-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.
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. ** ** **
Ü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)". ** ** **
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 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)
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