-Remplacer une partie de la chaîne de caractères ・ Extraire une partie de la chaîne de caractères -Vérifier si la chaîne de caractères répond aux contraintes
La technique pour effectuer des opérations telles qu'une expression régulière.
La plupart des descriptions d'expressions régulières peuvent être partagées entre toutes les langues.
Remplacez la partie spécifiée de la chaîne par une autre chaîne </ font>
irb(main):001:0> str = "Manger une pomme"
=> "Manger une pomme"
irb(main):002:0> str.sub(/Pomme/,"Orange")
=> "Manger de l'orange"
La chaîne "eat apple" est affectée à la variable str.
Ensuite, pour str, la méthode sub est utilisée, et apple est spécifié comme premier argument et orange est spécifié comme deuxième argument.
A la sortie, il est censé manger des pommes → manger des oranges.
De cette façon, ** entourez la chaîne de caractères que vous souhaitez remplacer par le premier argument dans "/ (barre oblique)", et spécifiez la chaîne de caractères convertie comme deuxième argument. ** **
Vérifiez si la chaîne est incluse dans la chaîne à gauche de la méthode </ font>
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
La chaîne "Hello, World" est affectée à la variable str
Ensuite, pour str, la méthode match est utilisée et Hello est spécifié comme argument.
Puisque "Hello, world" contient la chaîne spécifiée "Hello", vous obtiendrez la chaîne spécifiée "Hello" comme valeur de retour de l'objet MatchData.
Puisque "Good" n'est pas inclus, la valeur de retour sera nulle.
Comme la méthode sub, la méthode match inclut également l'argument ** entre "/ (slash)". ** **
Remplacez toutes les parties spécifiées de la chaîne par une autre chaîne </ 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"
Le numéro de téléphone est attribué à la variable tél.
J'essaye ensuite de m'en débarrasser en remplaçant le trait d'union par une chaîne vide dans la sous-méthode, mais seul le premier trait d'union est remplacé.
Utilisez sub pour remplacer uniquement la première chaîne spécifiée, gsub pour tout remplacer.
Les méta-caractères sont des caractères avec des significations et des fonctions spéciales, et diverses restrictions peuvent être apportées en les utilisant.
Comme il existe de nombreux types, je vais en présenter certains en donnant des exemples de restrictions de mot de passe.
irb(main):001:0> pw = 'Abcd1234'
=> "Abcd1234"
irb(main):002:0> pw.match(/[a-z\d]{8,10}/i)
=> #<MatchData "Abcd1234">
Ce qui précède est
・ Une lettre de a à z, soit une lettre, soit un chiffre ・ 8 caractères ou plus et 10 caractères ou moins ・ Les personnages peuvent être grands ou petits
J'applique la restriction.
Je vais décomposer le contenu de l'argument et expliquer la signification de chaque caractère
/[a-z\d]{8,10}/i
↓
/ [a-z \ d] {8,10} / i </ font> (La chaîne de caractères à l'intérieur de la barre oblique peut être supérieure ou inférieure)
↓
[a-z \ d] {8,10} </ font> (correspond au caractère précédent apparaissant de 8 à 10 caractères)
↓
[a-z] \ d </ font> (correspond aux nombres)
↓
[a-z] </ font> (correspond à l'une des lettres a à z)
type | sens |
---|---|
[ ] | Correspond à l'un des caractères inclus |
\d | Match numéros |
{a,b} | Correspond au caractère précédent qui apparaît a ou plus et b ou moins |
i (option) | Insensible au cas |
Différentes contraintes peuvent être implémentées en combinant les deux méthodes introduites essentiellement avec le modèle d'expressions régulières.
Le modèle n'est qu'un exemple. Il existe de nombreuses autres choses que vous pouvez faire avec les expressions régulières.
Recommended Posts