Maison > développement back-end > Tutoriel Python > Explication détaillée des expressions régulières en python (exemple d'analyse)

Explication détaillée des expressions régulières en python (exemple d'analyse)

乌拉乌拉~
Libérer: 2018-08-22 16:54:00
original
1196 Les gens l'ont consulté

Dans cet article, nous présenterons en détail les connaissances avancées sur les expressions régulières, et j'écrirai quelques problèmes qui peuvent survenir dans la programmation python Exemples d'expressions régulières.

Le premier point de connaissance avancé :

Chaîne divisée

L'utilisation d'expressions régulières pour diviser des chaînes est plus flexible que l'utilisation de caractères fixes. Veuillez consulter le code de fractionnement normal :

>>> 'a b   c'.split(' ')
['a', 'b', '', '', 'c']
Copier après la connexion

Eh bien, les espaces continus ne peuvent pas être reconnus. Essayez :

<🎜. >
>>> re.split(r&#39;\s+&#39;, &#39;a b   c&#39;)
[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;]
Copier après la connexion
Il peut être divisé normalement quel que soit le nombre d'espaces. Pour rejoindre, essayez :

>>> re.split(r&#39;[\s\,]+&#39;, &#39;a,b, c  d&#39;)
[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;]
Copier après la connexion
puis rejoignez ; essayez :

>>> re.split(r&#39;[\s\,\;]+&#39;, &#39;a,b;; c  d&#39;)
[&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;]
Copier après la connexion
Si l'utilisateur saisit un ensemble de balises, n'oubliez pas d'utiliser des expressions régulières la prochaine fois pour supprimer les entrées irrégulières. Convertir pour corriger le tableau.

Groupe

En plus de simplement déterminer s'il faut correspondre, les expressions régulières ont également la fonction puissante d'extraire des sous-chaînes. Ce qui est représenté par () est le groupe à extraire. Par exemple :

^(d{3})-(d{3,8})$ définit respectivement deux groupes, et l'indicatif régional et l'indicatif régional peuvent être extraits directement du chaîne correspondante. Numéro local :

>>> m = re.match(r&#39;^(\d{3})-(\d{3,8})$&#39;, &#39;010-12345&#39;)
>>> m
<_sre.SRE_Match object; span=(0, 9), match=&#39;010-12345&#39;
>>>> m.group(0)
&#39;010-12345&#39;
>>> m.group(1)
&#39;010&#39;
>>> m.group(2)
&#39;12345&#39;
Copier après la connexion
Si un groupe est défini dans l'expression régulière, vous pouvez utiliser la méthode group() sur l'objet Match pour extraire la sous-chaîne.

Notez que group(0) est toujours la chaîne d'origine, group(1), group(2)... représentent la 1ère, la 2ème,... les sous-chaînes.

Extraire des sous-chaînes est très utile. Regardons un exemple plus brutal :

>>> t = &#39;19:05:30&#39;
>>> m = re.match(r&#39;^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]
|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$&#39;, t)
>>> m.groups()
(&#39;19&#39;, &#39;05&#39;, &#39;30&#39;)
Copier après la connexion
Cette expression régulière peut identifier directement l'heure légale. Mais parfois, les expressions régulières ne peuvent pas être utilisées pour une vérification complète, comme l'identification des dates :

&#39;^(0[1-9]|1[0-2]|[0-9])-(0[1-9]|1[0-9]|2[0-9]|3[0-1]|[0-9])$&#39;
Copier après la connexion
pour

'2-30', '4-31' Une telle date illégale ne peut pas être identifiée à l'aide d'expressions régulières, ou il est très difficile de l'écrire. Dans ce cas, un programme est nécessaire pour coopérer à l'identification.

Ce qui précède est tout le contenu de cet article. Cet article présente principalement les connaissances liées aux

expressions régulières en python. J'espère que ce que j'ai décrit dans cet article vous sera utile et vous facilitera l'apprentissage de Python.

Pour plus de connaissances connexes, veuillez visiter la colonne

Tutoriel Python du site Web php chinois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal