C'est l'une des méthodes pour exprimer un ensemble de chaînes de caractères sous la forme d'une chaîne de caractères. Aussi appelée expression régulière, cette traduction est relativement utilisée dans le domaine de la théorie du langage formel. Dans de rares cas, on l'appelle également une expression normale. (Extrait de wikipedia https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE)
Il est difficile de comprendre si c'est juste cela, alors quand je touche l'application, il y a beaucoup de choses comme "Si le mot de passe est inférieur à 6 caractères, vous ne pouvez pas vous inscrire" ou "Si le numéro de téléphone contient un trait d'union ...". Alors, comment prenez-vous cette décision?
Par exemple, lors de l'enregistrement d'un numéro de téléphone
id | name | tel |
---|---|---|
1 | Monsieur A | 090-0000-0000 |
2 | Monsieur B | 09000000000 |
M. A → Inscrivez-vous avec tiret M. B → Inscrivez-vous sans tiret
Une telle situation est née. Si tel est le cas, il sera géré dans un format différent, il est donc plus facile à gérer s'il est unifié. À ce moment-là, "Effacez les traits d'union supplémentaires! ], Ce sera plus facile à gérer. De cette manière, "La chaîne de caractères contient-elle un caractère spécifique?" , Et la technologie qui effectue un traitement tel que "supprimer un caractère spécifique" est une expression régulière. Les expressions régulières peuvent être représentées par un code similaire dans différentes langues, donc une fois que vous vous souvenez de la forme, vous pouvez l'appliquer à d'autres langues.
Dans Ruby, les trois méthodes suivantes sont principalement importantes et souvent utilisées.
greeting = "Hello,world"
=>"Hello,world"
greeting.sub(/Hello/,"Good morning")
=>"Good morning,world"
J'ai pu remplacer la chaîne "Hello" incluse dans / par "Good morning".
greeting = "Hello,world"
=>"Hello,world"
greeting.mutch(/Hello/)
=> #<MatchData "Hello">
greeting.match(/Good morning/)
=> nil
Comme mentionné ci-dessus, la chaîne de caractères affectée à la salutation est "Hello, world", donc si l'argument est spécifié par / Hello / dans la méthode de correspondance, "Hello" est appelé en tant que MatchDate. Cependant, si l'argument est spécifié comme / Bonjour /, la chaîne de caractères ne sera pas incluse dans la chaîne de caractères affectée, donc "nil" sera affiché.
telA = '090-0000-0000'
=> "090-00000-0000"
telA.gsub(/-/,'')
=> "090000000000"
De cette façon, j'ai pu supprimer le trait d'union entouré par /. Comme décrit ci-dessus, vous pouvez restreindre la chaîne de caractères en spécifiant la chaîne de caractères à supprimer ou la chaîne de caractères à inclure dans la méthode. La méthode de description pour la spécification est résumée ci-dessous, veuillez donc vous y référer si vous avez une chance de l'utiliser.
modèle | sens |
---|---|
[a-z] | Correspond à l'une des lettres de a à z |
\d | Match numéros |
[a-z\d] | Correspond à l'un des caractères alphanumériques |
{n,m} | Correspond au caractère précédent qui apparaît au moins n fois et au plus m fois |
i | Rechercher sans faire la distinction entre les majuscules et les minuscules (ajouter à la fin) |
. | Correspond à n'importe quel caractère |
+ | Le caractère précédent correspond à une ou plusieurs répétitions |
\A | Le caractère immédiatement après correspond à la chaîne de caractères au début |
\z | Faire correspondre le caractère précédent à la dernière chaîne de caractères |
[Ah-Hmm-Un-龥] | Correspond à Kana, Kana ou Kanji entre crochets |
?= | Correspond à la chaîne de caractères immédiatement après le caractère défini |
*? | Vérifiez la chaîne de caractères dans laquelle le jeu de caractères immédiatement avant continue 0 fois ou plus,?Renvoie un caractère lorsque le caractère immédiatement après |
/\A(?=.?[a-z])(?=.?[\d])[a-z\d]+\z/i | Il commence par n'importe quel caractère 0 ou plus et commence par des caractères alphanumériques, et se termine par une ou plusieurs chaînes alphanumériques consécutives, et est insensible à la casse (peut être utilisé lors de la vérification de mots de passe alphanumériques mixtes, etc.) ) |
Recommended Posts