Transcription
1. Pourquoi des expressions régulières ?: Bonjour et bienvenue dans
la masterclass complète des expressions régulières
Python. Ce cours est entièrement mis à jour et interactif avec un apprentissage
pratique pour vous guider de 0 héros et apprendre Python RegEx. Pourquoi des expressions régulières ? Python est l'un des
langages de programmation
les plus populaires et à la
croissance la plus rapide au monde, et il devrait croître
encore plus à l'avenir. Donc, si vous
bâtissez votre carrière programmeur ou de
scientifique des données et que vous voulez
vous démarquer du
reste de la foule, en apprenant une
seule compétence technique ou l'expression
régulière de Scalar.
. Que pouvez-vous faire avec les expressions
régulières ? Vous pouvez automatiser les tâches qui seront exécutées en quelques secondes. Vous pouvez effectuer des
tâches avancées de correspondance de
boutons en utilisant l'
incroyable puissance de Python, vous pouvez lire, saler et réécrire
des données selon vos propres besoins. Et la meilleure chose à ce sujet,
c'est que c'est si simple et simple en
quelques lignes de code vous pourrez
effectuer des tâches qui prendraient des heures à effectuer manuellement. Et maintenant, lançons notre programme
et voyons à quoi il ressemble. Cela semble beaucoup plus lisible et beaucoup
plus facile à utiliser. Nous allons ouvrir le premier fichier à
côté et
les combiner ensemble. La différence est le jour et la nuit. C'est ce que nous avons fait. Et quelles 15 lignes de
code moins l'espacement. Il aurait fallu beaucoup de
temps pour le trier manuellement. Et il y a aussi la
possibilité d'une erreur humaine, qui pourrait gérer l'
ensemble de la base de données pour nous. Au lieu de cela, avec peu de lignes de code, nous laissons la machine faire le travail et éliminer la
possibilité de manquer une valeur de deux et de créer un effet boule de neige
qui exécute nos données. Alors, à qui s'adresse ce cours ? Les débutants qui
n'ont jamais programmé programmeurs provenant de langues
différentes. programmeurs ne sont pas des Python basiques, mais veulent améliorer
leurs compétences. Quels sont donc les coûts réels ? Jetons d'abord un coup d'œil. Je vais vous donner une brève
introduction sur la façon d'
utiliser le médicament X dans
votre programme Python. Ensuite, nous écrirons
notre premier modèle pour vérifier le
courrier électronique de l'utilisateur à l'aide de RegeX. Ensuite, nous examinerons différentes
méthodes de recherche, associerons objets et montrerons comment ils
fonctionnent en résolvant les problèmes. Ensuite, nous apprendrons comment
extraire des données utiles et nous utiliserons un outil qui faciliterait grandement les motifs de
ceintures. Enfin, nous aurons
un exercice réel où nous recevrons un
fichier invité à y lire, trier les valeurs dans
un ordre spécifique, puis écrire la nouvelle
liste triée et un autre fichier. Nous allons passer par tout cela et plus encore en temps opportun. Ce cours est conçu pour être court, concis et direct
. Vous pourriez perdre moins de
temps en théorie et plus de temps dans
l'expérience pratique. Alors, qu'attendez-vous ? Il est temps pour vous de faire passer vos compétences
en programmation au niveau supérieur, inscrire aujourd'hui, et je
vous verrai dans le cours.
2. Introduction - Vérifier les e-mails des utilisateurs en utilisant Regex: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons
examiner les expressions régulières. Les expressions régulières
ou regex peuvent être utilisées pour vérifier si une chaîne contient
un modèle spécifié. C'est un outil puissant pour
trouver des motifs dans un texte. Jetons un coup d'œil. Par exemple, nous voulons vérifier le
courrier électronique de l'utilisateur à l'aide de RegeX. La première chose que nous devons
faire pour commencer à utiliser RegEx est d'importer
le module RE. Supposons maintenant qu'il s'agit de
l'adresse e-mail que nous voulons vérifier. Nous allons maintenant créer
un bouton et définir les règles pour ce
bouton que nous voulons vérifier. Nous devons maintenant diviser
l'adresse e-mail en quatre parties
pour mieux comprendre la première partie,
qui reçoit
un snap ou un identifiant utilisateur, elle peut contenir un à
Z et 0 à neuf. Au début, nous
utilisons la carotte ou le symbole circonflexe
pour initialiser cela. Nous voulons faire correspondre une chaîne qui commence par ce qui suit. Et pour mettre fin à ce schéma, nous utiliserons le symbole du dollar. Mais bien sûr, nous voulons ajouter d'autres chaînes de magasin de condition. Vous n'allez pas y mettre
fin maintenant, la deuxième chose que nous
saisissons de A à Z et de 0 à neuf. Cela signifie que cette
partie de la chaîne peut contenir n'importe quelle
lettre dans n'importe quel nombre. Nous allons maintenant taper un
symbole plus indiquant que cela peut se produire une
ou plusieurs fois. Le nom du destinataire peut
également inclure des symboles
tels que point, trait de soulignement et tiret. soulignement et tiret de période. Nous utilisons la barre oblique inverse pour définir
nos caractères spéciaux, nos points
, nos traits de soulignement et nos tirets. Nous utilisons le point d'interrogation ici car ces symboles
peuvent être utilisés soit
0, soit un au plus s'
ils se produisent deux fois, ce qui signifie qu'il s'agit
d'un e-mail non valide. C'est pourquoi nous avons dû le
préciser avec un symbole de point d'
interrogation. Maintenant, après ces symboles, vous pouvez également avoir tous les caractères de a
à Z et de 0 à 9. Après les symboles que
nous avons spécifiés, le trait de soulignement de la période et le tiret, nous pouvons avoir des lettres de a à Z ou des chiffres de 0 à neuf. Juste comme ça.
Encore une fois, nous utiliserons le symbole plus car ils
peuvent apparaître plus d'une fois. Nous devons maintenant écrire le
symbole d'ajout, qui se produit ici. Ensuite, après le symbole d'ajout, nous aurons des choses comme Hotmail ou Gmail, etc. Il peut donc s'agir de n'importe quel caractère
alphanumérique. Ensuite, après l'annonce Hotmail
vient la période. Nous devons donc préciser cela. Maintenant, après la période vient
des choses comme .com.net. Ils ont généralement une longueur comprise entre
deux et trois caractères. Nous devons donc préciser cela. Nous allons maintenant utiliser le
symbole dollar pour mettre fin à notre chaîne. Maintenant que notre modèle est terminé, nous voulons recevoir des
commentaires de l'utilisateur en lui demandant d'
entrer son e-mail. Nous allons maintenant créer une boucle F pour vérifier le bouton nous
utiliseraient-ils ? Ainsi, la méthode re.search
prendra deux arguments. Le premier est
le bouton que nous avons créé. Le second est l'entrée de l'utilisateur ou la
chaîne que nous voulons vérifier. Lançons donc notre programme
et voyons à quoi il ressemble. Nous allons donc entrer cette
même adresse e-mail. Je crois donc que l'erreur que j'
ai commise a été de laisser un espace ici. Et quand je retire l'
espace, ça fonctionne très bien. Une carte phonétique de haut type
plutôt que génétique. Voyons donc si nous avons saisi un e-mail non valide
exprès, comme générique. Ensuite, j'ai utilisé un autre e-mail
simple et valide. Eh bien, d'après tout, notre programme fonctionne très bien. Voyons donc un autre exemple. Supposons que nous voulions rechercher un certain bouton sur
la chaîne suivante. Il semble donc que le majuscule a
a été répété deux fois. Et nous voulons vérifier ce
schéma dans notre propre modèle. Pour ce faire, nous allons d'abord
définir notre bouton. Ici. Nous allons utiliser
la méthode de compilation. Nous pourrions également utiliser
la méthode de recherche comme dans l'exemple
précédent. Donc, R ici avant notre
chaîne signifie chaîne brute, python, chaîne brute traite barre oblique inverse comme un caractère
littéral. Cela est utile lorsque nous avons
une chaîne contenant une
barre oblique inverse n. Je ne veux pas qu'elle soit traitée comme un caractère d'échappement. Voyons donc la
différence entre une chaîne régulière
et des cordes brutes. Le premier,
qui est une chaîne normale, a donc qui est une chaîne normale, traité la barre oblique inverse n
comme un caractère d'échappement. Dans ce cas, il
est utilisé pour commencer une nouvelle ligne. Et comme vous pouvez le voir, cependant, dans la deuxième chaîne, qui est une chaîne brute, elle a ignoré les utilisateurs de barre
oblique inverse et la traite comme un caractère littéral. De même, si nous avons remplacé la
barre oblique inverse n par la barre oblique inverse x, nous aurons une flèche
et la chaîne normale car la barre oblique inverse x n'a
pas de but. Cependant, notre chaîne brute, nous allons l'ignorer et l'
imprimer tel quel. Revenons donc à
notre chaîne de test. Nous allons maintenant créer un objet. Nous tapons donc le bouton
que nous allons utiliser. Nous allons maintenant utiliser la méthode find. À l'intérieur de la méthode ETL définie, nous allons taper nos tests rétrécissement. Nous avons maintenant créé
un objet appelé correspondances que nous pouvons
parcourir en utilisant suffisamment de flux. Comme vous pouvez le constater, il
montre deux occurrences d'un moment montrant
leur position. De plus, il est sensible à la casse, ce qui signifie qu'il n'a pas
capté la minuscule a. Nous pouvons également
raccourcir notre code en utilisant r e, trouver Eta immédiatement. Par exemple. Maintenant, nous allons taper le bouton que nous
voulons rechercher, qui est a0. Ensuite, le deuxième argument nous transmettrons la chaîne que
nous voulons tester. Comme vous pouvez le constater, il renvoie les mêmes résultats avec
moins de lignes de code. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir dans le prochain.
3. Méthodes de recherche de jumelages: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons examiner méthodes de recherche de correspondances. Donc, dans la dernière vidéo, nous avons
travaillé sur cet exemple, qui a utilisé trouver mieux. Il existe d'autres méthodes
pour rechercher des correspondances, telles que la correspondance,
la recherche et la recherche. Trouvez-le donc pour renvoyer
un objet avec la position de la chaîne
que nous recherchions. Cependant, Find all renvoie uniquement
une chaîne, par exemple. C'est donc ce qui a tout trouvé. Qu'y a-t-il de la méthode de correspondance ? La méthode de correspondance recherche le bouton uniquement au début de la chaîne et renvoie uniquement la première
occurrence, par exemple. Comme vous pouvez le constater, il n'a pas renvoyé la deuxième
occurrence d'un. Maintenant, modifions le bouton. Nous voulons le chercher pour autre
chose qu'un, par
exemple, comme vous pouvez le
constater, il n'y a rien de retour. Donc, même si les cinq neuvième huit se sont produits
dans notre corde, mais comme ce n'était pas au
début, il n'y a rien de retour. Alors, qu'en est-il de la recherche ? recherche fonctionne très
semblable pour trouver mieux. Cependant, il ne renvoie que la première occurrence
du motif, par exemple. Ainsi, les quatre méthodes de correspondance les plus
courantes, ou trouver une meilleure recherche, trouver toutes et correspondre. Jetons donc un coup d'
œil à cet exemple. Nous avons la chaîne suivante
qui indique 3$ pour la chemise, nous n'utiliserions pas RegEx pour vérifier si la chaîne
commence par un chiffre. Dans ce cas, il y en a trois. Et si c'est le cas,
nous imprimerons ce chiffre. Alors, importons d'abord RE. Ensuite, nous allons
créer une chaîne et mettre ce texte à l'intérieur. Nous voulons maintenant créer un bouton
que nous voulons rechercher. Et nous allons
utiliser des cordes brutes. Comme d'habitude, nous allons
taper notre
barre oblique inverse de bouton t. barre oblique inverse
d signifie un chiffre, ce qui est exactement
ce que nous avons ici. Maintenant que nous avons créé un bouton, créons un objet de correspondance. Ici, nous
passerions notre bouton, puis nous passerons dans notre corde. Maintenant, nous pouvons simplement dire F, ce qui signifie que si S est vrai, puis imprime ce qui suit. Vous pouvez demander si la citation
est un groupe de points apparié, groupe est une méthode de
l'objet de correspondance. Et ce qu'il
fait simplement, c'est qu'il renvoie la chaîne correspondante, qui dans ce cas est trois. Nous examinerons de plus près méthodes
Match dans la prochaine vidéo. Mais pour l'instant, le groupe va nous rendre
le numéro trois. Alors lançons notre programme
et voyons à quoi il ressemble. Donc, même si nous changeons
ce nombre à cinq, il en retournera cinq. Donc, si nous n'utilisons pas
la méthode du groupe, c'est
ce que nous allons obtenir. Vous allez obtenir l'objet de match
complet. Nous ne voulions que la ficelle cinq. C'est pourquoi nous utilisons la méthode des groupes de
points. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir dans le prochain.
4. Méthodes pour les objets de correspondance: Bonjour et
bienvenue dans ma vidéo. Ainsi, dans la dernière vidéo, nous avons
vu comment se retrouver avec le retour un objet
que nous pouvions parcourir en utilisant suffisamment de boucle. Cette correspondance d'objet lui-même
a donc ses propres méthodes et nous allons les
jeter un coup d'œil. Ce sont les méthodes qui
commencent, grandissent et s'étendent. Ainsi, comme vous pouvez le constater lorsque
nous imprimons le résultat, il renvoie cet objet. Nous ne pouvons imprimer la span
ici qu'à l'aide de span pour cela, nous allons utiliser
Match dot span. Maintenant, lorsque nous exécutons notre programme, nous obtiendrons un tuple
contenant notre étendue que cela peut être utile si nous
voulons imprimer exactement où notre
motif s'est produit. Par exemple, comme vous pouvez le constater, cela semble plus
lisible par l'utilisateur. Si nous imprimons le type de
cette méthode de correspondance de points, nous découvrirons qu'
il s'agit simplement d'une table qui inclut la position, ce que notre correspondance a eu lieu. Nous pouvons également imprimer les positions de
début et de fin de notre chaîne en utilisant le
début et la fin. Jetons un coup d'œil. Correspondance, puis correspondance par des virgules. Donc, pour renvoyer les entiers de nos positions de départ et de
fin, nous pourrions faire quelque chose comme ça. Et lorsque nous imprimons son type, découvrirai qu'
il ne s'agit que d'un entier. Enfin, si nous voulons
uniquement imprimer la chaîne qui correspondra,
nous utiliserons un groupe. Et comme prévu, lorsque
nous imprimons son type, nous apprenons
qu'il s'agit d'une chaîne. Donc, en conclusion, correspond à
un objet qui contient la plage dans laquelle le modèle de
barre oblique de correspondance s'est produit. Et il contient également la
chaîne correspondante. Nous pouvons accéder à des
composants individuels de cette correspondance en utilisant les
méthodes
que nous avons passées par la méthode start
pour obtenir un entier la méthode start
pour obtenir un entier de la position de départ dans
laquelle le motif a commencé. Méthode pour obtenir un entier, la position de fin dans
laquelle le bouton s'est terminé. Méthode de groupe pour obtenir
la chaîne correspondante. Et enfin, la méthode
span pour obtenir une table qui inclut la
position de début et de fin du bouton. C'est donc tout pour les bases. Et dans la prochaine vidéo,
nous examinerons comment extraire des données
utiles à l'aide du X rouge fins de science
des données ou de
documentation. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir dans le prochain.
5. Extraire des données utiles: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons
apprendre à extraire des données utiles et à élever nos compétences en
expression régulière à un tout autre niveau. Dans cette vidéo, nous
utiliserons un outil ou
un site Web appelé
beg x, en tête-à-tête. C'est un
outil très puissant qui
non seulement nous apprendra davantage sur RegEx, mais aussi simplifier le processus
et visualiser ce qui suit. abord, nous allons cliquer sur bifan comme langage de programmation avec
lequel nous travaillons. Supposons maintenant que nous avons
la chaîne suivante. Donc, en regardant la chaîne, nous avons deux chiffres. L'un est un numéro de téléphone
et l'autre est un numéro à deux chiffres
de la société vendue immédiatement. Ce que nous savons des numéros de téléphone c'est qu'ils sont composés
de dix chiffres, ce qui le différencie
facilement de l'autre
numéro ici. Nous pouvons donc configurer notre
RegEx pour qu'il soit extrait chaque fois qu'il trouve un numéro de séquence à dix
chiffres. Ainsi, lorsque nous passons à
l'onglet de référence rapide, nous pourrions trouver la syntaxe
dont nous avons besoin au cas où nous l'oubliions. Donc ici, il est dit barre oblique inverse
d signifie n'importe quel chiffre, ou en d'autres termes, n'importe quel nombre. Allons de l'avant et utilisons-le. Comme vous pouvez le voir quand, lorsque
nous saisissons la barre oblique inverse d, sont
les correspondances que nous obtenons. Il correspond essentiellement à
tous les chiffres dont nous disposons. Maintenant, ce que nous voulons faire correspondre à deux chiffres consécutifs, nous
pouvons lier les jours de barre oblique inverse. Il correspond maintenant à deux chiffres. Donc, avant que nous ayons eu 12
matchs, nous en avons maintenant six. Comme il ne correspond pas à
chaque chiffre
individuel il ne correspond que deux
chiffres ensemble. Et si nous saisissons trois
barres obliques inverse, nous n'obtiendrons que deux matchs de trois chiffres consécutifs. Et comme vous pouvez le constater,
20 millions ne
correspondent pas parce qu'il s'agit
d'un nombre à deux chiffres, et ainsi de suite. On pourrait donc penser que quand Izzy, si un numéro
de téléphone de dix chiffres, on pourrait juste rester dix barres obliques inverse ces deux-là
correspondent à cette séquence. Techniquement, ils ne se
trompent pas et cela
fonctionnerait très bien, par exemple. Nous avons donc 345678910. Donc, lorsque nous regardons les matchs, c'est
ce que nous allons obtenir. De toute évidence, il existe
des moyens plus sophistiqués de le faire. Par exemple, vous pouvez accéder
à l'onglet de référence rapide. Les jetons communs trouveront une expression qui indique
exactement trois occurrences de a, ce qui
signifie exactement
trois occurrences de la lettre a consécutivement. Essayons donc de l'
utiliser à notre avantage. Donc dès le départ,
nous n'avons pas besoin de a, nous voulons plutôt une barre oblique inverse. Nous saisissons donc la barre oblique inverse d
, puis entre deux crochets bouclés entrent dix au lieu de trois. Cela nous a donné les mêmes résultats exacts
avec beaucoup moins de codage. Bien sûr, certains pourraient
dire : Eh bien, les numéros de téléphone, ils seront présentés dans un format
différent, par exemple. Donc, si nous voulons extraire
des numéros de téléphone et qu'ils sont clairement dans deux formats
différents. Nous pourrions procéder comme suit. d'abord, sauvegardons notre expression ici et nous y
reviendrons plus tard. Donc, l'une des battes,
notre bouton que nous voulons associer commence par
un support. Cependant, si nous tapons un paquet
jusqu'à une expression régulière, nous rencontrerions un problème. Et c'est parce que
le crochet est un caractère spécial et qu'il a
une signification pour notre programme. Comme vous pouvez le constater lorsque nous
examinons l'étape de référence rapide, nous constatons que le crochet est utilisé pour capturer tout
dans
un crochet fermé, dans ce cas appelé caractère spécial. Donc, pour utiliser un personnage spécial, il
faut y échapper. Et comment y échapper ? Il suffit de taper une
barre oblique inverse avant. Par exemple. Maintenant, comme vous pouvez le constater, cela fonctionne très bien et il
a détecté notre poche ici. Continuons donc. Nous avons donc trois chiffres après
le crochet, nous allons mourir. Mais dans notre bouton, trois chiffres. Et comme vous pouvez le constater, il a
détecté le numéro. Donc, jusqu'à présent, c'est bon. Et encore une fois, nous avons un support, mais nous pouvons taper les
supports tout de suite. Nous devons y
échapper en utilisant une barre oblique inverse. Nous avons maintenant un symbole de tiret. Ensuite, nous avons trois chiffres, puis un tiret simple, et enfin quatre chiffres. Maintenant, comme vous pouvez le constater, il correspond au format de notre numéro de
téléphone. Nous en avons donc fini avec
cette expression, mais nous avons toujours
notre première expression qui est la barre oblique inverse d dix. Comment dire à notre
programme de rechercher simplement
ce bouton ou ce
motif, nous pourrions utiliser le symbole de barre
verticale. Donc, lorsque nous saisissons
la recherche ici, ou que nous obtenons cette correspondance alternative, soit a, soit B. Donc, utilisons le simple. Ensuite, nous allons coller notre
expression ici. Et comme vous pouvez le constater, les deux ont
détectés. Il est donc dit de rechercher
ce motif ou ce bouton. Donc, si nous voulons l'utiliser
dans notre programme Python, nous pourrions procéder comme suit. Nous importons donc d'abord
notre médicament X. Ensuite, nous créons une chaîne
pour contenir notre texte. Maintenant, nous créons une matraque. Et nous appelons
le meilleur bouton que nous avons créé. Maintenant, nous allons utiliser find all
va d'abord taper notre modèle. Ensuite, le texte que nous voulons faire correspondre. Maintenant, nous imprimons simplement la correspondance. Examinons les résultats. Comme vous pouvez le constater, cela
fonctionne très bien. Nous pouvons donc toujours utiliser
RegEx en tête-à-tête pour créer notre expression et la
tester avant appliquer
ici sur Python, cela facilite grandement les choses
car il visualise le processus pour nous et nous montre. ce qui est apparié
en temps réel. Maintenant, pour le deuxième niveau, nous avons ce bloc de texte géant et nous voulons en extraire
les titres. Les titres ici sont donc notre
objectif et notre opportunité. Et nous voulons extraire la dose. Donc, pour commencer, nous pouvons taper note car ils
commencent par rien. Et puis il y a un
espace, puis un numéro. Nous avons maintenant capturé la note 1 et n2, mais nous voulons quand même capturer le texte qui vient après. Si vous regardez de près, vous verrez que
le titre se termine par la création d'
une nouvelle ligne ici et ici. Et nous savons qu'une nouvelle ligne
signifie une barre oblique inverse en Python. Nous voulons capturer tous les textes jusqu'à ce que nous connaissions une nouvelle ligne. La question reste de savoir comment taper cela en expression régulière ? Donc, si nous regardons ici
l'arrêt de référence rapide, il indique n'importe quel personnage
sauf a, B ou C. Alors ouvrons un nouveau doc x
commencer à expérimenter. Supposons donc que nous ayons le texte
suivant et que nous voulons dire que
tous les caractères correspondent à
l'exception du signe de pourcentage,
le signe égal. Nous allons donc taper ce qui suit. Comme vous pouvez le constater, il correspondait tout sauf ces échantillons. Et pour faire une séquence, nous ajoutons un signe plus à la
fin de notre expression. Maintenant, il y a un ou
plusieurs personnages jusqu'à ce que vous rencontriez l'
un de ces signes. C'est donc ce que signifie le
signe plus. Une ou plusieurs occurrences d'un caractère
que vous spécifiez. Revenons maintenant à nos textes, appliquons ce que nous avons appris. Bon, donc maintenant nous avons un numéro, puis nous avons un espace. Nous allons donc ajouter un espace. Ensuite, nous allons essayer
cette expression. Tout sauf une nouvelle ligne. Il ne correspond qu'au premier
personnage et s'arrête. Nous voulions plutôt capturer
un ou plusieurs personnages. Pour cela, nous
utiliserons le signe plus. Et lorsque nous passons au type
et au type de référence
rapide d'une ou de plusieurs, nous pouvons utiliser le signe plus. Nous pourrions également utiliser le signe étoile, ce qui signifie 0 occurrences ou
plus. Et cela nous donnerait
les mêmes résultats. Maintenant, lorsque nous passons aux informations du
match, nous pouvons voir que cela fonctionne, mais nous n'avons toujours pas
fini parce que nous voulons capturer
les titres et pas un seul et le nœud deux
ne font pas partie de nos titres. Pour cela, nous utiliserons des supports. Comme vous pouvez le voir, il est dit
capturer tout ce qui est inclus. Donc, lorsque nous passons à notre expression, c'est exactement l'expression où elle a commencé à
capturer le titre ici. Mettons donc des crochets
autour de cette expression. Maintenant, ce qu'il fait, c'est que les
groupes sont capturés
ces résultats pour nous. Maintenant, ce qui se passe, c'
est qu'il correspond aux autres résultats tels que le
nœud 1 et le nœud deux. Nous allons donc l'utiliser
dans notre code Python. Et pour copier ce bloc de texte
géant, nous allons utiliser trois guillemets
simples pour tenir compte de la barre oblique inverse n
ou de nouvelles lignes de notre texte. Donc, au lieu de cette ancienne méthode, allons utiliser
trois guillemets, 123, puis nous allons
baser notre texte, puis nous utiliserons
trois autres guillemets. allons maintenant copier notre expression
régulière que nous avons écrite et
basée sur le modèle. Comme vous pouvez le constater lorsque
nous exécutons le programme, il ne renvoie que le titre est pour nous sans un, pas deux. Et maintenant, pour le niveau trois, nous avons un bloc de texte relativement
petit. Cependant, nous allons extraire
beaucoup d'informations à ce sujet. Donc, si nous examinons les informations
utiles ici, nous pouvons constater que
les gains ont été fournis dans le format
suivant. L'exercice financier est ensuite
suivi de l'année, dans ce cas, c'est 2021 ou 2020, puis un espace puis
la salle d'audience cette année-là. Dans ce cas, il s'agit du
Q1 et du quatrième trimestre. Nous savons donc que dans un an, il ne
peut y avoir que quatre trimestres, Q1, Q2, Q3 et Q4. Il ne peut y avoir de Q5. Nous allons donc garder cela à l'esprit. Dès le départ de la chauve-souris, notre schéma commence par
FY. Alors, saisissons FY. Il
y a évidemment quatre chiffres, ce
qui, dans ce cas,
c'est l'année. Et comment pouvons-nous faire cela ? Nous utilisons une barre oblique inverse d. Et puis entre les
crochets bouclés, nous saisissons quatre. Cette expression signifie donc si je suis suivi de quatre chiffres
ou de n'importe quel numéro de téléphone. Jusqu'à présent, c'est bon. Et puis il y a un espace après, avant le Q1 et le Q4. Nous devons spécifier cela dans
notre expression régulière. Nous allons donc taper un espace. Ensuite, il y a une file d'attente. Maintenant, la file d'attente est
suivie d'un chiffre. Cependant, nous ne pouvons pas
simplement taper la barre oblique d, car cela inclurait des choses comme celles qui, dans
ce cas, sont erronées. Nous voulons donc nous assurer que
nos chiffres sont compris entre un et quatre. Comment faisons-nous cela ? Si nous examinons l'onglet de référence
rapide, cette option indique
un caractère unique de A, B ou C. Vous pouvez
spécifier explicitement les nombres que vous
souhaitez inclure, soit 1234. Mais il y a une meilleure approche. Nous pourrions utiliser cette option dans le tampon de référence rapide qui indique un caractère compris entre A et Z. Maintenant, nous pourrions taper
un à quatre, et cela nous donnerait les mêmes
résultats avec moins de codage. Alors maintenant, testons notre
modèle et Python, nous m'appelons J'aime le texte et basons sur ce nom de texte. Ensuite, nous copions notre modèle et l'avons
basé dans le modèle,
notre programme Python. Et maintenant, lançons le
programme pour voir les résultats. Et si l'un des
vols était en minuscules, mais que nous voulons toujours
correspondre à cela, nous pourrions procéder comme suit. Le décalage est égal à ignorer la casse. Maintenant, lorsque nous imprimons les résultats, comme vous pouvez le voir, ils
correspondent aux minuscules f, y. Et disons que nous ne
voulons pas inclure l'exercice financier,
qui correspond à l'exercice financier,
tout simplement, nous pourrions
utiliser les crochets pour tout simplement, nous pourrions
utiliser les crochets pour capturer et conserver uniquement
les pièces que nous voulons. Ainsi, par exemple, lorsque
nous exécutons notre programme, nous pouvons le voir, il n'
a capturé que les parties spécifiées à l'intérieur
des crochets. Revenons donc à
RegEx en tête-à-tête. Nous pourrons correspondre à l'
année et à leurs trimestres. Cependant, nous voulons toujours
correspondre aux gains
de cet ensemble ici. Et supposons que nous avions
d'autres chiffres et nos textes que nous
voulons éviter, par exemple. Sauvons donc notre
expression ici. Nous ne voulons pas
capturer ce numéro. Nous voulons uniquement
capturer les chiffres qui commencent par un signe dollar. Cependant, nous ne pouvons pas simplement taper le signe du dollar car c'est
un caractère spécial. Cela signifie la fin d'une chaîne, comme vous pouvez le voir dans l'onglet de
référence rapide en bas. Comme il s'agit d'un caractère
spécial, nous savons que nous devons
utiliser la barre oblique inverse pour
échapper à ce
caractère spécial avant de l'utiliser. Maintenant, il correspond à ce que nous voulons. Nous avons maintenant un chiffre après cela, donc nous pouvons taper la
barre oblique inverse d. Cependant, il y a une
virgule décimale après cela, donc nous
utiliserons des crochets. Ensuite, nous avons une virgule car il s'agit d'un caractère
spécial, comme vous pouvez le voir dans l'arrêt de référence
rapide. Nous devons utiliser la
barre oblique inverse avant de l'utiliser. Maintenant, nous fermons notre support carré. Nous devons maintenant mettre un plus, ce qui signifie une ou
plusieurs occurrences. Maintenant, si, pour une raison quelconque le bénéfice
de la société a atteint 10,4 milliards, il compte encore
deux chiffres avant la virgule car nous l'avons spécifié en utilisant
le signe plus. Collons maintenant cette expression
régulière et notre programme Python
et voyons si cela fonctionne. Maintenant, nous allons prendre le bouton. Enlevons ça. Maintenant, lançons notre programme. Et bien sûr, si nous ne
voulons pas le signe du dollar, nous pourrions toujours utiliser les crochets
pour capturer ce que nous voulons. Supposons que nous voulions faire correspondre
l'année, le trimestre et les
bénéfices de ce résultat ici. Comment faire cela en utilisant le médicament X ? Eh bien, nous avons déjà fait une expression régulière pour correspondre à
l'année et au trimestre. Alors utilisons-nous d'abord. Maintenant, après le trimestre, n' importe quel personnage avant d'
atteindre le signe du dollar. Nous allons donc taper n'importe quel personnage
sauf le signe du dollar. Et maintenant, nous devons
ajouter un signe plus pour capturer une ou plusieurs occurrences. Maintenant, ça correspond à n'importe quoi
jusqu' à ce qu'il soit contré,
un signe de dollar. C'est donc ce que nous voulons. Nous allons maintenant revenir à l'expression
régulière que nous avons créée précédemment pour correspondre à l'annexe et la coller dans
notre expression. Maintenant, comme vous pouvez le constater, il
correspond exactement à ce que nous voulons. Mais on pourrait dire, eh bien, nous ne
voulons pas nécessairement que les textes entre les deux soient, et c'était simplement que vous pouvez utiliser les crochets pour capturer exactement
ce que nous voulons. Maintenant, il ne capture que
ces résultats. Revenons donc à nos
programmes Python à quoi cela ressemble. Comme vous pouvez le constater, il
fonctionne comme prévu. Et bien sûr, si vous n'
incluez pas le signe du dollar, nous pourrions simplement l'inclure dans
notre expression capturée. Regardez le type, par exemple, les gains présentés en milliards. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir dans le prochain.
6. Tri des données non ordonnées: Bonjour et
bienvenue dans ma vidéo. Aujourd'hui, nous allons
examiner comment trier
un fichier texte non trié à l'aide de RegEx. C'est donc le dossier que nous
allons jeter un coup d'œil. Le nom de fichier est une liste de données. Je l'ai enregistré sur mon bureau. Ainsi, lorsque nous ouvrons le fichier, nous avons trois
types différents de données, nom, d'e-mail et de
numéros de téléphone dans cette liste. Le FirstName ici
appartient au premier e-mail ici et appartient au
premier numéro ici. De même,
le deuxième
nom appartient au deuxième e-mail
et au deuxième numéro, etc. Maintenant, le problème est qu'ils ne
sont pas listés l'un à côté de l'autre. J'ai ces valeurs les unes
à côté des autres une par une. Évidemment, si vous le faites
manuellement et que vous placez le prénom à côté du premier e-mail du premier numéro, cela vous prendra une éternité. Comment structurer cette
liste en utilisant quelques lignes de code ? Passons donc à
notre programme Python et jetons un coup d'œil pour
commencer à utiliser RegEx. La première chose que nous voulons
faire est d'importer notre baie. Ensuite, nous voulons ouvrir ce fichier. Si vous voulez une explication plus
détaillée la façon de gérer
les fichiers en Python, vous pouvez consulter ma
classe sur Gestion des fichiers. C'est ainsi que nous ouvrons
un fichier en Python. C'est ainsi que vous pouvez
ouvrir un fichier s'il était enregistré dans le même répertoire
que votre fichier Python. Cependant, notre fichier est
enregistré sur notre bureau. Nous devons spécifier
l'emplacement dans notre programme pour connaître l'
emplacement de notre fichier texte,
il suffit de se diriger vers l'
emplacement où il se trouve,
puis de cliquer avec le bouton droit de la souris sur Propriétés. Et voici l'emplacement, il suffit de copier le coller
dans notre programme Python. Nous devons maintenant modifier
ces barres obliques inverses, deux barres obliques. Comme vous pouvez le constater maintenant, il
ne montre aucun adulte. Maintenant, nous lisons
ce fichier et enregistrons son contenu dans cette
variable appelée contenu. La prochaine chose que nous
voulons faire est de créer des modèles qui correspondent
aux données dont nous disposons. Heureusement, nous avons déjà créé boutons pour correspondre aux e-mails
et aux numéros de téléphone Nous utiliserons
donc simplement
ces boutons depuis qu'ils fonctionnent. Ce sont les mêmes que ceux que nous avons
utilisés dans les classes précédentes. Il s'agit donc du bouton
qui correspondrait aux e-mails, et c'est le bouton qui
correspondrait aux numéros de téléphone. Cependant, il y a une
légère différence. Si vous regardez les chiffres, ils sont similaires aux nôtres, dans lesquels ils
commencent par des parenthèses, puis il y a trois chiffres, mais au lieu d'un tiret ici, ils ont un espace. Remplacons donc cela
pointillé par l'espace. Ensuite, ils ont
trois chiffres. Nous avons trois chiffres,
puis un tiret. Et ensuite, pour les chiffres. Cela devrait donc correspondre aux
chiffres de notre liste, très bien. Ces deux boutons
devraient donc fonctionner correctement. Maintenant, un autre bouton
que nous devons créer est le modèle de nom correspondant
aux noms la liste que nous
n'avons pas créée. Nous avons créé maintenant à partir de zéro. Donc, si nous regardons les noms des listes, ce que nous avons est
essentiellement une majuscule de a à Z, puis une lettre minuscule
de a à Z, puis un espace. Encore une fois, n'importe quelle
majuscule de a à Z, puis toute
lettre minuscule de I2C. Cela semble donc assez
simple. Allons-y. Donc
je suis Doug x termes, c'est à ça que ça ressemble. Ce bouton est donc
divisé en deux parties FirstName et LastName. Et ils sont séparés par
un espace entre eux. Le FirstName est une lettre
allant de la majuscule a à Z majuscule, mais ne se produit qu'une seule fois, puis n'importe quelle lettre de
A à z. Cette fois, nous avons ajouté un signe plus car il pourrait
se produire une ou plusieurs fois. Donc, si nous regardons notre liste, nous n'avons qu'une majuscule ici, puis plusieurs lettres
minuscules. Et c'est ce que disent
nos boutons. Une majuscule,
puis n'importe quel nombre de lettres
minuscules. Ensuite, nous avons un espace
entre eux. Et puis encore le même bouton, une majuscule,
puis n'importe quel nombre de lettres
minuscules. Nous avons donc maintenant nos
modèles prêts. Nous allons choisir une méthode de recherche. Nous pourrions utiliser trouver tout, ou nous pourrions utiliser l'éditeur de recherche. Mais je pense trouver S
plus approprié dans ce cas. Créons donc un bon débiteur
pour chaque modèle de voyelle. Nous avons donc créé un fonds. C'est un objet nommé e-mails, lui
a donné le bouton
correspondant aux e-mails. Ensuite, indiquez la chaîne avec laquelle
nous voulons la faire correspondre. Dans ce cas, notre chaîne ou nos textes sont stockés dans cette
variable appelée contenu, qui provient de notre fichier texte. Il en va de même pour les téléphones et les noms. Donc, si nous devions utiliser l'
éditeur de recherche comme nous le faisons habituellement, ce sont les résultats que
nous allons obtenir. C'est donc ainsi que nous utilisons
généralement trouver mieux. Voici l'objet que nous voulons
parcourir et nous disons que, pour chaque article et chaque e-mail,
imprimez chaque article. Lançons donc notre programme
et voyons à quoi il ressemble. Comme vous pouvez le voir pour les dizaines, l'objet complet, nous n'avons
besoin que de la chaîne ou de
l'e-mail correspondant. Pour cela, nous allons
utiliser la méthode de groupe de points. Lançons notre programme. Maintenant, il ne fait que
renvoyer les cordes. Mais nous n'avons toujours pas fini. Cela nous donne essentiellement le même fichier que celui que nous avons
déjà dans lequel les e-mails sont répertoriés à un endroit et les noms
sont répertoriés dans un autre. Comment les énumérer l'un à
côté de l'autre ? Vous pourriez suggérer que
nous pourrions créer une autre boucle for pour
les téléphones et les noms. Par exemple,
copions simplement ce téléphone. Les téléphones ici. Désolé. Et puis il en va de même pour les
noms, pour les noms. Ensuite, nous mettons le nom ici. Alors, lançons ça et
voyons à quoi ça ressemble. C'est. Essentiellement, il
ressemble exactement au même fichier que celui que nous
avons qui ne fonctionne pas. Soit. On pourrait peut-être suggérer de placer ces quatre lobes l'un sous l'
autre. Donc, si nous supprimons l'espace ici, mettez en surbrillance et appuyez sur Tab,
puis supprimez l'espace
surligné et appuyez sur Stop. Bon, donc maintenant à l'intérieur
de l'autre, voyons à quoi ça ressemble. Maintenant, c'est encore pire parce qu'
il est imprimé le premier e-mail que le
numéro de téléphone, puis les noms et c'est juste un gâchis. Mais ne vous inquiétez pas, ce sont
des outils spécifiques pour cela. Donc, essentiellement, ce que
nous voulons faire, c'est itérer l'e-mail, le téléphone et le nom. Dans le même temps, nous ne voulons pas
itérer les e-mails seuls que les
polices seules, les noms eux-mêmes. Nous voulons les itérer
tous dans la même boucle for-loop. Pour cela, nous allons utiliser les ETL pour utiliser les outils de l'éditeur. Nous devons d'abord l'importer,
ne vous inquiétez pas, nous n'
avons rien à installer. Il est fourni par défaut avec Python. Comme vous pouvez le voir, il est
suggéré que je me l'ai dit, maintenant faisons un petit zoom arrière. Fermez ça. Bon, maintenant que nous l'avons importé,
c' est comme ça que nous
allons l'utiliser. Nous allons donc taper pour nom car nous
voulons parcourir le nom. Et nous voulons également
effectuer une itération par e-mail. Et nous voulons également
parcourir la police. Ensuite, nous
allons taper gzip. Ensuite, incluez les objets que
nous allons parcourir. Oh mon Dieu, que se passe-t-il ? Donc des noms, des courriels, des téléphones. Oh, désolé. Donc pour le nom dans les noms
et les courriels, dans les courriels, pour le
plaisir et les téléphones. Cela fonctionne donc comme une boucle for
régulière pour nous, sauf que nous pouvons maintenant
parcourir plusieurs objets. Nous allons maintenant imprimer nos résultats. Imprimer le nom du groupe de points, puis nous a envoyé un e-mail au groupe. Puis j'ai finalement trouvé ça. C'est donc très similaire
à la façon dont nous effectuerions itération sur un objet
à l'aide d'une boucle for régulière. La seule chose à retenir est d'
inclure tous les objets que
nous voulons parcourir à l'intérieur
de la parenthèse zip. Lançons maintenant notre programme
et voyons à quoi il ressemble. C'est magnifique
exactement comme nous le voulions. Mais encore une fois, nous n'avons toujours pas fini. Nous voulons écrire ces
résultats dans un fichier. Au lieu de
les imprimer ici dans le terminal. Pour cela, nous allons ouvrir un nouveau fichier texte en mode écriture
et nommons les données triées. Donc f est égal à ouvert. Ensuite, nous allons
entrer le nom du fichier. Vous allez le nommer TXT
trié, puis une virgule. Et ici, nous spécifions le mode. Nous allons utiliser le mode W, ce qui signifie moteur octets. Maintenant oui, il indique le mode Écriture, mais cette fonction ouverte
créera un fichier pour nous
s'il n'existait pas, et si elle existe, elle écrasera le
contenu de cet objet. Donc, si nous le laissons tel quel, cela va créer le
fichier ici dans notre espace de travail. Nous allons le créer sur notre bureau voisin,
ou
dans le fichier original pour cela, indiquons le même
emplacement que celui où se trouve notre fichier. Nous allons donc couvrir cette dislocation
et la coller ici. Maintenant, ouvrons ce fichier, nous allons maintenant y écrire. Changeons donc notre boucle for pour
écrire au lieu d'imprimer. Nous allons donc taper F,
qui est le nom du fichier,
points, n'est-ce pas ? Et c'est tout. Maintenant, il se peut que nous obtenions une erreur ici. C'est parce que la méthode d'écriture ne prend qu'un seul paramètre, mais nous avons placé ici
trois paramètres. Mettons-les
dans une ficelle. Donc, alors, nous allons
commencer une chaîne. Et cette chaîne,
nous allons placer ces variables
nommées points, cool. Envoyez ensuite un e-mail au groupe. Puis a finalement trouvé son groupe. Ensuite, nous allons
terminer notre chaîne par un autre
guillemet double. Maintenant, nous devrions être réglés, mais avant d'exécuter notre programme, n'
oublions pas
de fermer notre fichier. Nous allons donc taper def, qui est le nom de notre fichier. Lançons donc notre programme
et voyons à quoi il ressemble. Nous devrions voir un fichier
créé sur notre bureau. Parce qu'il n'y a rien d'
aussi déterminant parce que nous n'avons rien
imprimé. Mais si vous l'avez remarqué ici, il y a des données triées, c'est le fichier que nous avons créé. Ouvrons-le et jetons un coup d'œil. C'est un peu trié les données
pour nous, mais pas assez. Nous devons placer
une nouvelle ligne après avoir imprimé le nom, l'
e-mail et le téléphone. Alors ici, après avoir écrit le nom, e-mail et le téléphone pour créer
une nouvelle ligne après cela. Et maintenant, lançons notre programme. Et ne vous inquiétez pas si nous
lançons à nouveau notre programme, il ne va pas
créer de nouveau fichier. Au lieu de cela, il va
écraser notre fichier existant. Alors lançons le programme et
regardons notre fichier. Notez que nos virgules
séparent ces valeurs, c'est-à-dire parce
que nous les avons conservées dans notre chaîne f, comme vous pouvez le voir. Donc, si vous préférez
ne pas les avoir, vous pouvez supprimer ces virgules et votre programme
fonctionnera très bien. Cependant, je pense qu'
il est plus facile de travailler avec des données lorsqu'elles sont
séparées par des virgules. En option, nous pourrions
étiqueter nos données. Nous allons donc
taper un nom, puis un deux-points, puis un deux-points, puis enfin
un deux-points. Et maintenant, lançons notre programme
et voyons à quoi il ressemble. Cela semble beaucoup plus lisible et beaucoup
plus facile à utiliser. Nous allons ouvrir le premier fichier à
côté et
les comparer ensemble. La différence est le jour et
la nuit. Et c'est ce que nous avons fait. Et quelles 15 lignes de
code moins l'espacement. Il aurait fallu beaucoup de
temps pour le trier manuellement. Et il y a aussi la
possibilité d'une erreur humaine, qui pourrait gérer l'
ensemble de la base de données pour nous. Au lieu de cela, avec peu de lignes de code, nous laissons la machine faire le travail et éliminer la
possibilité de manquer une ou deux valeurs et de créer un effet boule de neige
qui exécute nos données. Récapitons donc notre code
que nous avons importé ou un médicament X et des outils d'édition pour
parcourir plusieurs objets. Nous ouvrons ensuite le fichier à partir duquel
nous allons lire les données,
spécifier leur emplacement et l'avons ouvert en tant que
f. Ensuite, nous avons créé une variable et nous avons tapé le
contenu égal à
F, F, qui est notre fichier, le traitement. Cette variable de contenu
lit donc notre fichier texte. Nous avons ensuite créé un modèle pour
notre e-mail, notre téléphone et notre nom. Ensuite, nous avons créé
une recherche de courriels sur un objet et nous lui avons donné le
modèle qu'il utilise. Les e-mails utilisent donc le bouton e-mail et nous l'avons
mis en correspondance avec le contenu, qui inclut les
données et notre fichier texte. Il en va de même pour les polices
et les noms. Ensuite, nous avons créé un nouveau
fichier et l'ouvrons en mode
W ou en mode écriture et le
nommons des données triées. Ensuite, nous avons créé une boucle for qui itère sur
trois objets, noms, e-mails et téléphones. Ensuite, nous les étiquetons au
fur et à mesure que nous les écrivons dans notre fichier texte pour avoir
plus de facilité à les laisser faire. Après avoir écrit dans
notre dossier, nous l'avons fermé. C'est donc tout pour la vidéo d'aujourd'hui. Merci beaucoup d'avoir regardé et j'espère
vous voir dans le prochain.