développement back-end
Tutoriel Python
Comment implémenter des expressions régulières en Python
Comment implémenter des expressions régulières en Python
Expression régulière Python
L'expression régulière elle-même est une connaissance indépendante du langage de programmation, mais elle dépend également du langage de programmation. Fondamentalement, le langage de programmation que nous utilisons assure sa mise en œuvre. Bien sûr, chaque entreprise présente également quelques différences. mise en œuvre, certains prennent en charge plus de fonctions et d’autres moins.
Étant donné que les expressions régulières sont un outil largement utilisé dans la pratique, je pense qu'il n'est pas fiable de les apprendre sans langage.
Introduction aux fonctions d'expression régulière
Diagramme de relation entre l'API principale et l'expression régulière

Ce diagramme est mon résumé personnel. Je pense avoir fondamentalement clarifié la relation entre les fonctions ici. Leurs fonctions sont :
. match correspond à l'expression régulière du début du texte et renvoie l'objet correspondant. Sinon, il renvoie None
search Correspond à l'expression régulière dans tout le texte et renvoie le premier objet correspondant. Sinon, il renvoie None .
sub utilise des expressions régulières pour le remplacement de texte (fonction des expressions régulières : rechercher et remplacer)
findall correspond aux expressions régulières du texte entier et renvoie tous les résultats correspondants sous la forme d'une liste.
finditer correspond à une expression régulière du texte entier, renvoyant tous les résultats correspondants en tant qu'itérateur.
split utilise des expressions régulières pour diviser le texte
Comme vous pouvez le voir ici, de nombreuses fonctions peuvent être utilisées immédiatement sous ·re·, et il existe de nombreuses fonctions portant le même nom sous re Fonction .compile. Directement sous le module ·re· se trouvent officiellement des fonctions pour une utilisation facile, et la manière la plus orthodoxe de les utiliser est d'utiliser re.compile. re.compile 下面有很多同名的函数。直接在 ·re· 模块下的是官方提供方便使用的函数,通过 re.compile 来使用是最正统的方式。所以,接下来的内容,我基本上智慧使用 re.compile 及其下的方法来实现。
re.compile 函数
compile 函数用于编译正则表达式,生成一个正则表达式 (Pattern)对象,供 match() 和 search() 以及其它函数使用。
语法:
re.compile(pattern[, flags])
pattern: 一个字符串形式的正则表达式
flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
re.I 忽略大小写
re.L 多行模式
re.S 即为 '.' 并且包括换行符在内的任意字符('.' 不包括换行符)
re.U 表示特殊字符集 w, W, b, B, d, D, s, S 依赖 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和 ‘#’ 后面的注释
示例:查找字符串中的所有数字
import re s = 'runoob 123 google 456' result1 = re.findall(r'\d+', s) pattern = re.compile(r'\d+') # 查找数字 result2 = pattern.findall(s) result3 = pattern.findall(s, 0, 20) print(result1) print(result2) print(result3) """ output: [‘123', ‘456'] [‘123', ‘456'] [‘123', ‘45'] """
学习模板
接下来我们要逐渐学习正则表达的内容,这些内容是非常有趣的!Interesting and Excited!
这里给出一个接下来会一直使用的示例模板,这个模板是这篇博客最重要的东西了,之后的内容都会基于它进行扩展。所以,请好好理解它。
import re
# 需要进行搜索或者匹配的文本
text = """I love you yesterday and today."""
# 正则表达式
regexp = r'love'
# 编译(对正则表达式进行编译获取 Pattern Object)
pattern = re.compile(regexp)
# 搜索
m = pattern.search(text)
if m:
print("匹配对象: ", m)
print("匹配的字符串: ", m.group())
print("匹配的开始位置: ", m.start())
print("匹配的结束位置: ", m.end())
print("匹配位置的元组: ", m.span())
else:
print("No match!")
# 替换
new_text = pattern.sub("hate", text)
print(new_text)
注意: 正则表达式 regexp 在开始前会使用 rDonc, pour le contenu suivant, j'utilise essentiellement re.compile et les méthodes ci-dessous pour y parvenir.
compile est utilisée pour compiler des expressions régulières et générer un objet d'expression régulière (Pattern) pour match() et search( ) et d'autres fonctions. | pattern : une expression régulière sous la forme d'une chaîne | |
| re.I Ignorer la casse | |
| re.L Mode multiligne | |
| re.U représente le jeu de caractères spéciaux w, W, b, B, d, D, s, S et s'appuie sur la base de données d'attributs de caractères Unicode | |
| re.X pour augmenter la lisibilité, ignorer les espaces et commentaires après ‘#’ |
🎜🎜🎜Attention :🎜 L'expression régulière utilisera le préfixe r avant de démarrer. Le but est d'éviter d'utiliser un grand nombre de caractères d'échappement dans l'expression régulière, ce qui détruit la lisibilité globale. 🎜🎜Les expressions régulières de Python incluent de nombreuses méthodes très faciles à utiliser, mais je ne les présenterai pas trop ici. Nous utiliserons toujours le modèle ci-dessus, car ces méthodes faciles à utiliser n’en sont qu’une sorte d’encapsulation, et apprendre à utiliser cette méthode de base en mènera naturellement à d’autres. 🎜🎜L'objet correspondant peut obtenir des informations sur les expressions régulières. Ses méthodes et propriétés les plus importantes sont : 🎜🎜🎜🎜🎜Méthodes/Propriétés 🎜🎜Objectif🎜🎜🎜🎜🎜🎜group()🎜🎜Renvoyer la chaîne correspondante régulière 🎜🎜🎜 🎜start()🎜🎜Renvoie la position de départ du match🎜🎜🎜🎜end()🎜🎜Renvoie la position de fin du match🎜🎜🎜🎜span()🎜🎜Renvoie un tuple contenant la position correspondante (début, fin) 🎜 🎜🎜🎜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!
Outils d'IA chauds
Undress AI Tool
Images de déshabillage gratuites
Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes
AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.
Clothoff.io
Dissolvant de vêtements AI
Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !
Article chaud
Outils chauds
Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit
SublimeText3 version chinoise
Version chinoise, très simple à utiliser
Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP
Dreamweaver CS6
Outils de développement Web visuel
SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
Sujets chauds
Comment gérer l'authentification de l'API dans Python
Jul 13, 2025 am 02:22 AM
La clé pour gérer l'authentification de l'API est de comprendre et d'utiliser correctement la méthode d'authentification. 1. Apikey est la méthode d'authentification la plus simple, généralement placée dans l'en-tête de demande ou les paramètres d'URL; 2. BasicAuth utilise le nom d'utilisateur et le mot de passe pour la transmission de codage Base64, qui convient aux systèmes internes; 3. OAuth2 doit d'abord obtenir le jeton via client_id et client_secret, puis apporter le Bearertoken dans l'en-tête de demande; 4. Afin de gérer l'expiration des jetons, la classe de gestion des jetons peut être encapsulée et rafraîchie automatiquement le jeton; En bref, la sélection de la méthode appropriée en fonction du document et le stockage en toute sécurité des informations clés sont la clé.
Comment analyser les grands fichiers JSON à Python?
Jul 13, 2025 am 01:46 AM
Comment gérer efficacement les grands fichiers JSON dans Python? 1. Utilisez la bibliothèque IJSON pour diffuser et éviter le débordement de mémoire via l'analyse par éléments par éléments; 2. S'il est au format JSONLINes, vous pouvez le lire ligne par ligne et le traiter avec json.loads (); 3. Ou divisez le grand fichier en petits morceaux, puis le traitez séparément. Ces méthodes résolvent efficacement le problème de limitation de la mémoire et conviennent à différents scénarios.
Python pour la boucle sur un tuple
Jul 13, 2025 am 02:55 AM
Dans Python, la méthode de traverser les tuples avec des boucles pour les boucles comprend directement itérer les éléments, obtenir des indices et des éléments en même temps, et le traitement des tuples imbriqués. 1. Utilisez la boucle pour accéder directement à chaque élément de séquence sans gérer l'index; 2. Utilisez EnuMerate () pour obtenir l'index et la valeur en même temps. L'indice par défaut est 0 et le paramètre de démarrage peut également être spécifié; 3. Les tuples imbriqués peuvent être déballés dans la boucle, mais il est nécessaire de s'assurer que la structure des sous-tables est cohérente, sinon une erreur de déballage sera augmentée; De plus, le tuple est immuable et le contenu ne peut pas être modifié dans la boucle. Les valeurs indésirables peuvent être ignorées par \ _. Il est recommandé de vérifier si le tuple est vide avant de traverser pour éviter les erreurs.
Comment passer des appels API asynchrones dans Python
Jul 13, 2025 am 02:01 AM
Python implémente les appels API asynchrones avec Async / Await avec AIOHTTP. Utilisez Async pour définir les fonctions Coroutine et les exécuter via le pilote asyncio.run, par exemple: asyncdeffetch_data (): AwaitAsyncio.Sleep (1); lancer des demandes HTTP asynchrones via AIOHTTP, et utilisez AsyncWith pour créer des clients de clients et attendre le résultat de la réponse; utiliser asyncio.gather pour emballer la liste des tâches; Les précautions comprennent: éviter les opérations de blocage, ne pas mélanger le code de synchronisation et le jupyter doit gérer les boucles d'événements spécialement. Master Eventl
Qu'est-ce qu'une fonction pure dans Python
Jul 14, 2025 am 12:18 AM
Les fonctions pures dans Python se réfèrent à des fonctions qui renvoient toujours la même sortie sans effets secondaires compte tenu de la même entrée. Ses caractéristiques incluent: 1. Le déterminisme, c'est-à-dire que la même entrée produit toujours la même sortie; 2. Pas d'effets secondaires, c'est-à-dire pas de variables externes, pas de données d'entrée et aucune interaction avec le monde extérieur. Par exemple, Defadd (A, B): Returna B est une fonction pure car peu importe le nombre de fois qu'Add (2,3) est appelé, il renvoie toujours 5 sans changer d'autres contenus dans le programme. En revanche, les fonctions qui modifient les variables globales ou modifient les paramètres d'entrée sont des fonctions non-pure. Les avantages des fonctions purs sont: plus faciles à tester, plus adaptés à l'exécution simultanée, les résultats du cache pour améliorer les performances et peuvent être bien adaptés à des outils de programmation fonctionnelle tels que MAP () et Filter ().
Une classe Python peut-elle avoir plusieurs constructeurs?
Jul 15, 2025 am 02:54 AM
Oui, apythonclasscanhavemultipleconstructorshroughalterativetechniques.1.UseaultArgumentsInthe__Init__MethodtoallowflexibleInitializationwithVaryingNumbersofParameters.2.DefineclassMethodsAnterveConstructorForCeleArandScalableableBjectCraturé
Qu'est-ce que si d'autre dans Python
Jul 13, 2025 am 02:48 AM
Ifelse est l'infrastructure utilisée dans Python pour un jugement conditionnel, et différents blocs de code sont exécutés par l'authenticité de la condition. Il prend en charge l'utilisation d'ELIF pour ajouter des branches lors du jugement multi-conditions, et l'indentation est la clé de syntaxe; Si num = 15, le programme produit "ce nombre est supérieur à 10"; Si la logique d'attribution est requise, les opérateurs ternaires tels que status = "adulte" ifage> = 18Else "mineur" peuvent être utilisés. 1. Ifelse sélectionne le chemin d'exécution en fonction des conditions vraies ou fausses; 2. ELIF peut ajouter plusieurs branches de condition; 3. L'indentation détermine la propriété du code, les erreurs conduiront à des exceptions; 4. L'opérateur ternaire convient aux scénarios d'attribution simples.
Comment empêcher une méthode d'être remplacée dans Python?
Jul 13, 2025 am 02:56 AM
Dans Python, bien qu'il n'y ait pas de mot-clé final intégré, il peut simuler des méthodes insurpassables grâce à la réécriture du nom, des exceptions d'exécution, des décorateurs, etc. 1. Utilisez le préfixe de trait de soulignement pour déclencher la réécriture du nom, ce qui rend difficile les sous-classes pour écraser les méthodes; 2. Jugez le type de l'appelant dans la méthode et lancez une exception pour empêcher la redéfinition de la sous-classe; 3. Utilisez un décorateur personnalisé pour marquer la méthode comme final et vérifiez-le en combinaison avec Metaclass ou Decorator de classe; 4. Le comportement peut être encapsulé en tant qu'attributs de propriété pour réduire la possibilité d'être modifiés. Ces méthodes offrent différents degrés de protection, mais aucun d'entre eux ne restreint complètement le comportement de couverture.


