[RAILS] Expression régulière Ruby

Qu'est-ce qu'une expression régulière?

-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.

Méthodes et exemples d'utilisation

sous-méthode

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. ** **

méthode de match

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

méthode gsub

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.

Méta caractères d'expression régulière

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)

  • Cette fois, en plus de a-z, les nombres sont également entourés de crochets, donc ils correspondent à n'importe lequel des caractères alphanumériques.)

Résumé

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