Depuis que j'ai commencé à apprendre les expressions régulières, j'écrirai sur la façon de les utiliser comme rappel.
Supposons que vous ayez un profil comme celui-ci:
text = <<TEXT
Anniversaire:Né le 6 mai 1234
Code postal:789-1111
TEXT
(\d+)Année(\d+)Mois(\d+)journée
#=> 1234,5,6 est extrait.
#=>Ci-dessous, les kanji de la date correspondront également.
\d+Année\d+Mois\d+journée
#=>6 mai 1234
** \ d ** ・ ・ ・ Nombre demi-largeur (quel que soit le chiffre) ** + ** ・ ・ ・ Le caractère ou le motif précédent est continu au moins une fois ** () ** ・ ・ ・ Capturez ou regroupez des chaînes de caractères correspondant en interne ** Année, mois, jour ** ・ ・ ・ Pas un méta-caractère, juste une chaîne de caractères
p text[/\d{3}-\d{4}/].gsub('-','')
#=>7891111
** / (Expression régulière) / ** ・ ・ ・ Créez un objet d'expression régulière entouré de / (appelé "Littéral d'expression régulière en Ruby") ** [] ** ・ ・ ・ Méthode de classe de chaîne qui extrait la partie qui correspond à l'expression régulière de la chaîne de caractères. La méthode d'alias est la méthode ** slice **. ** {3}, {4} ** ・ ・ ・ Le caractère précédent (\ d dans ce cas) continue pour le nombre entre {}. ** - ** ・ ・ ・ Pas de méta-caractères, juste des traits d'union. (Notez que les traits d'union peuvent représenter une «plage de caractères» selon la manière dont ils sont écrits.) ** gsub ('1er argument', '2ème argument') ** ・ ・ ・ Remplacez la chaîne de caractères qui correspond au 1er argument par la chaîne de caractères du 2ème argument. Dans le cas ci-dessus, la chaîne de caractères "-" est convertie en "" (ce qui signifie suppression). La méthode ** slice ** et la méthode ** gsub ** ont chacune une "méthode destructive ()". () Une méthode qui change l'état de l'objet appelé. Ajoutez "!" À la fin.
Les expressions régulières peuvent être confirmées visuellement à l'aide d'outils qui peuvent être essayés et erronés car ils utilisent pleinement les méta-caractères.
https://rubular.com/
Expression régulière efficace pour rechercher et remplacer des chaînes de caractères. Je voulais le maîtriser dans un proche avenir, j'ai donc d'abord décrit le contenu d'apprentissage de base. Merci d'avoir lu jusqu'ici.
Recommended Posts