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)

乌拉乌拉~
乌拉乌拉~original
2018-08-22 16:54:001217parcourir

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']

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

>>> re.split(r'\s+', 'a b   c')
['a', 'b', 'c']
Il peut être divisé normalement quel que soit le nombre d'espaces. Pour rejoindre, essayez :

>>> re.split(r'[\s\,]+', 'a,b, c  d')
['a', 'b', 'c', 'd']
puis rejoignez ; essayez :

>>> re.split(r'[\s\,\;]+', 'a,b;; c  d')
['a', 'b', 'c', 'd']
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'^(\d{3})-(\d{3,8})$', '010-12345')
>>> 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;
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;)
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;
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!

Déclaration:
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

Articles Liés

Voir plus