Maison > développement back-end > Tutoriel Python > Comment utiliser les expressions régulières Python pour le développement backend

Comment utiliser les expressions régulières Python pour le développement backend

王林
Libérer: 2023-06-22 17:21:07
original
1276 Les gens l'ont consulté

Dans le développement back-end, le traitement des données et l'extraction d'informations sont très importants. Les expressions régulières sont un puissant outil de traitement de données et d'extraction d'informations qui peut nous aider à mener plus efficacement le développement back-end. Cet article explique comment utiliser les expressions régulières Python pour le développement back-end.

1. Connaissance de base des expressions régulières

Les expressions régulières, également appelées regex, sont un outil pour décrire des modèles de caractères. Elles peuvent nous aider à faire correspondre rapidement et correctement les informations requises dans des données textuelles massives.

Les expressions régulières sont généralement constituées de caractères, d'opérateurs et de métacaractères. Les caractères spéciaux et les métacaractères peuvent représenter un type de caractères ou un type de règles de correspondance. Voici une liste de métacaractères courants d'expressions régulières :

métacaractères caractères correspondants
caractères d'échappement
. correspond à n'importe quel caractère sauf les nouvelles lignes
^ Faites correspondre le début de la chaîne
$ Faites correspondre la fin de la chaîne
[] Jeu de caractères
[^] Jeu sans caractères
* Correspondance le caractère précédent 0 fois ou plus
+ Correspond au caractère précédent 1 fois ou plus
? Correspond au caractère précédent 0 ou 1 fois
{} Correspond au caractère précédent a nombre de fois spécifié
Correspond à l'expression à gauche ou à droite de
() Correspond à l'expression entre parenthèses, représente également le groupe de capture

2. Application d'expressions régulières en Python

Le module re est intégré à Python, qui fournit une prise en charge complète des expressions régulières et peut faciliter le traitement des données et l'extraction d'informations.

  1. Faire correspondre les nombres dans une chaîne

Nous pouvons utiliser le métacaractère d pour faire correspondre les nombres et + pour faire correspondre plusieurs nombres :

import re

text = "John has 2 apples, and Jane has 3 oranges."

result = re.findall(r'd+', text)

print(result)
Copier après la connexion

Le résultat est :

['2', '3']
Copier après la connexion
  1. Faire correspondre les adresses e-mail

Nous pouvons utiliser [A - Za-z0-9._%+-]+ correspond au nom d'utilisateur de messagerie, utilisez @[A-Za-z0-9.-]+.[A-Za-z]{2,} pour faire correspondre le nom de domaine de messagerie :

import re

text = "My email address is john@example.com."

result = re.findall(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}', text)

print(result)
Copier après la connexion

Le résultat de sortie est :

['john@example.com']
Copier après la connexion
  1. Faire correspondre les hyperliens en HTML

Nous pouvons utiliser 1+href="(.?)"1> match en HTML L'hyperlien :

import re

html = """
<a href="https://www.google.com">Google</a>,
<a href="https://www.baidu.com">Baidu</a>,
<a href="https://www.sogou.com">Sogou</a>,
"""

result = re.findall(r'<a[^>]+href="(.*?)"[^>]*>', html)

print(result)
Copier après la connexion

Le résultat de sortie est :

['https://www.google.com', 'https://www.baidu.com', 'https://www.sogou.com']
Copier après la connexion

3. Compétences d'optimisation des expressions régulières

Bien que les expressions régulières soient très puissantes, l'efficacité peut devenir relativement faible lors du traitement du Big Data et des correspondances complexes. Par conséquent, nous devons optimiser la façon dont les expressions régulières sont écrites pour obtenir une vitesse de correspondance plus rapide.

  1. Lors de la correspondance d'un groupe de caractères, utilisez le jeu de caractères [] pour remplacer le caractère spécifié

Par exemple, nous pouvons utiliser [A-Za-z0-9] au lieu de [A-Z]|[a-z]|[ 0-9] , ce qui peut réduire le nombre de caractères dans l'expression régulière et optimiser la vitesse de correspondance.

  1. Évitez d'utiliser le mode gourmand

Le mode gourmand fait référence à un motif qui correspond à autant de caractères que possible. Par exemple, lorsque vous faites correspondre "enfer" dans la chaîne "hello world", re.findall(r'he.l', text) correspondra à "hello worl" car . correspond avidement à "o wor", voici le résultat nous ne voulons pas voir. Afin d'éviter le mode gourmand, nous pouvons ajouter ? après . et utiliser le mode paresseux, comme re.findall(r'he.?l', text).

  1. Utilisez des chaînes brutes

Les expressions régulières contiennent souvent des barres obliques inverses (). Si les chaînes brutes ne sont pas utilisées, les barres obliques inverses seront interprétées comme des caractères d'échappement. Par conséquent, nous ajoutons généralement r avant l'expression régulière pour indiquer l'utilisation de la chaîne d'origine, telle que re.findall(r'<[A-Za-z0-9]+>', text).

4. Résumé

Dans le développement back-end, les expressions régulières sont un outil très important qui peut nous aider dans le traitement des données et l'extraction d'informations, et améliorer l'efficacité du développement. Cet article présente les connaissances de base des expressions régulières et de leur application en Python, et fournit également des conseils d'optimisation. J'espère qu'il sera utile aux lecteurs.


  1. >

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