Table des matières
Introduction
La syntaxe utilisée
Algorithm
Exemple
Sortie
Explication du code
Conclusion
Maison développement back-end Tutoriel Python Comment trouver la position exacte de chaque correspondance dans l'expression régulière de Python ?

Comment trouver la position exacte de chaque correspondance dans l'expression régulière de Python ?

Aug 31, 2023 pm 12:13 PM
python 正则表达式 Position de correspondance

Le module

Comment trouver la position exacte de chaque correspondance dans lexpression régulière de Python ?

Introduction

re est l'expression régulière que nous utilisons en Python. Les expressions régulières sont utilisées pour les recherches de texte et les opérations de texte plus complexes. Des outils comme grep et sed, des éditeurs de texte comme vi et emacs et des langages informatiques comme Tcl, Perl et Python ont tous une prise en charge intégrée des expressions régulières.

Le module re en Python fournit des fonctions pour faire correspondre les expressions régulières.

Les expressions régulières qui définissent le texte que nous voulons rechercher ou modifier sont appelées modèles. Les littéraux de texte et les métacaractères constituent cette chaîne. Les fonctions compilées sont utilisées pour créer des schémas. Il est recommandé d'utiliser des chaînes brutes car les expressions régulières contiennent souvent des caractères spéciaux. (Le caractère r est utilisé pour indiquer une chaîne brute.) Ces caractères ne sont interprétés que lorsqu'ils sont combinés dans un modèle.

Un motif peut être appliqué à une chaîne de texte à l'aide de l'une des fonctions, le motif est utilisé une fois l'assemblage terminé. Les fonctions disponibles incluent Match, Search, Find et Finditer.

La syntaxe utilisée

La fonction d'expression régulière utilisée ici est : Nous utilisons la fonction d'expression régulière pour trouver des correspondances.

re.match(): Determines if the RE matches at the beginning of the string. If zero or more characters at the beginning of the string match the regular expression pattern, the match method returns a match object.

p.finditer(): Finds all substrings where the RE matches and returns them as an iterator. An iterator delivering match objects across all non-overlapping matches for the pattern in a string is the result of the finditer method.

re.compile(): Compile a regular expression pattern into a regular expression object, which can be used for matching using its match(), search(), and other methods described below. The expression’s behavior can be modified by specifying a flag's value. Values can be any of the following variables combined using bitwise OR (the | operator).

m.start(): m.start() returns the offset in the string at the match's start.

m.group(): You may use the multiple-assignment approach to assign each value to a different variable when mo.groups() returns a tuple of values, as in the areaCode, mainNumber = mo.groups() line below.

search: It is comparable to re.match() but does not require that we just look for matches at the beginning of the text. The search() function can locate a pattern in the string at any location, but it only returns the first instance of the pattern.
Copier après la connexion

Algorithm

  • Utilisez import re pour importer le module d'expression régulière.

  • Utilisez la fonction re.compile() pour créer un objet d'expression régulière. (N'oubliez pas d'utiliser des chaînes brutes.)

  • Transmettez la chaîne que vous souhaitez rechercher à la méthode finditer() de l'objet Regex. Cela renverra un objet Match.

  • Appelez la méthode group() de l'objet Match pour renvoyer la chaîne de texte correspondante.

  • Nous pouvons également utiliser la méthode span() pour obtenir l'index de début et de fin dans un tuple.

Exemple

 #importing re functions
import re
#compiling [A-Z0-9] and storing it in a variable p
p = re.compile("[A-Z0-9]")
#looping m times in p.finditer
for m in p.finditer('A5B6C7D8'):
#printing the m.start and m.group
   print m.start(), m.group()
Copier après la connexion

Sortie

Cela produira la sortie −

0 A
1 5
2 B
3 6
4 C
5 7
6 D
7 8
Copier après la connexion

Explication du code

Utilisez import re pour importer le module d'expression régulière. Utilisez la fonction re.compile() pour créer un objet d'expression régulière ("[A-Z0-9]") et affectez-le à la variable p. Utilisez une boucle pour parcourir m et transmettez la chaîne que vous souhaitez rechercher à la méthode finditer() de l'objet d'expression régulière. Cela renverra un objet Match. Appelez les méthodes m.group() et m.start() de l'objet Match pour renvoyer la chaîne qui correspond réellement au texte.

Exemple

# Python program to illustrate
# Matching regex objects
# with groups
import re
phoneNumRegex = re.compile(r'(\d\d\d)-(\d\d\d-\d\d\d\d)')
mo = phoneNumRegex.search('My number is 415-555-4242.')
print(mo.groups())
Copier après la connexion

Sortie

Cela produira la sortie −

('415', '555-4242')
Copier après la connexion

Explication du code

Utilisez import re pour importer le module d'expression régulière. Utilisez la fonction re.compile() pour créer un objet d'expression régulière (r'(ddd)-(ddd-dddd)') et affectez-le à la variable phoneNumRegex. Passez la chaîne à rechercher à la méthode search() de l'objet Regex et stockez-la dans la variable mo. Cela renverra un objet Match. Appelez la méthode mo.groups() de l'objet Match pour renvoyer la chaîne de texte correspondante.

Conclusion

Les méthodes search(), match() et finditer() fournies par le module Python re nous permettent de faire correspondre des modèles d'expression régulière, et si la correspondance réussit, elle fournira une instance d'objet Match. Utilisez les méthodes start(), end() et span() de cet objet Match pour obtenir des informations détaillées sur la chaîne correspondante.

Lorsqu'il y a de nombreuses correspondances, vous pouvez courir un risque de surcharge de mémoire si vous utilisez findall() pour toutes les charger. Vous pouvez obtenir un objet itérateur de toutes les correspondances potentielles en utilisant la méthode finditer(), ce qui améliorera l'efficacité.

Cela signifie que finditer() fournit un objet appelable qui, lorsqu'il est appelé, charge le résultat en mémoire.

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

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Musée à deux points: toutes les expositions et où les trouver
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Musée à deux points: toutes les expositions et où les trouver
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment télécharger Deepseek Xiaomi Comment télécharger Deepseek Xiaomi Feb 19, 2025 pm 05:27 PM

Comment télécharger Deepseek Xiaomi

Quels sont les avantages et les inconvénients des modèles ? Quels sont les avantages et les inconvénients des modèles ? May 08, 2024 pm 03:51 PM

Quels sont les avantages et les inconvénients des modèles ?

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs Jul 01, 2024 am 07:22 AM

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs

Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ? May 31, 2024 pm 01:04 PM

Comment valider une adresse e-mail dans Golang à l'aide d'une expression régulière ?

Comment lui demandez-vous Deepseek Comment lui demandez-vous Deepseek Feb 19, 2025 pm 04:42 PM

Comment lui demandez-vous Deepseek

Quel logiciel est NET40 ? Quel logiciel est NET40 ? May 10, 2024 am 01:12 AM

Quel logiciel est NET40 ?

Comment rechercher Deepseek Comment rechercher Deepseek Feb 19, 2025 pm 05:18 PM

Comment rechercher Deepseek

Dans quelle langue le plug-in du navigateur est-il écrit ? Dans quelle langue le plug-in du navigateur est-il écrit ? May 08, 2024 pm 09:36 PM

Dans quelle langue le plug-in du navigateur est-il écrit ?

See all articles