UN Expression régulière ou RegEx est une séquence spéciale de caractères qui utilise un modèle de recherche pour trouver une chaîne ou un ensemble de chaînes.
Il peut détecter la présence ou l'absence d'un texte en le faisant correspondre à un motif particulier et peut également diviser un motif en un ou plusieurs sous-motifs.
Module Regex en Python
Python a un module intégré nommé concernant qui est utilisé pour les expressions régulières en Python. Nous pouvons importer ce module en utilisant l'instruction import .
Exemple: Importation du module re en Python
Python3
# importing re module> import> re> |
>
>
Comment utiliser RegEx en Python ?
Vous pouvez utiliser RegEx en Python après avoir importé le module re.
Exemple:
Ce code Python utilise des expressions régulières pour rechercher le mot portail dans la chaîne donnée, puis imprime les indices de début et de fin du mot correspondant dans la chaîne.
Python3
import> re> > s>=> 'techcodeview.com: A computer science portal for geeks'> > match>=> re.search(r>'portal'>, s)> > print>(>'Start Index:'>, match.start())> print>(>'End Index:'>, match.end())> |
>
>Sortir
Start Index: 34 End Index: 40>
Note: Ici, le caractère r (r'portal') signifie brut, pas regex. La chaîne brute est légèrement différente d’une chaîne normale, elle n’interprétera pas le caractère comme un caractère d’échappement. En effet, le moteur d'expression régulière utilise le caractère à des fins d'échappement.
Avant de commencer avec le module regex Python, voyons comment écrire des regex à l'aide de métacaractères ou de séquences spéciales.
Métacaractères
Les métacaractères sont des caractères ayant une signification particulière.
Pour comprendre l'analogie RE, les métacaractères sont utiles et importants. Ils seront utilisés dans les fonctions du module re. Vous trouverez ci-dessous la liste des métacaractères.
| Méta-caractères | Description |
|---|---|
| Utilisé pour supprimer la signification particulière du caractère qui le suit texte en gras CSS | |
| [] | Représenter une classe de personnage |
| ^ | Correspond au début |
| $ | Correspond à la fin |
| . | Correspond à n'importe quel caractère sauf la nouvelle ligne |
| | | Signifie OU (Correspond à l'un des caractères séparés par celui-ci. |
| ? | Correspond à zéro ou une occurrence |
| * | N'importe quel nombre d'occurrences (y compris 0 occurrence) |
| + | Une ou plusieurs occurrences |
| {} | Indiquez le nombre d’occurrences d’une regex précédente à faire correspondre. |
| () | Joindre un groupe de Regex |
Discutons en détail de chacun de ces métacaractères :
1. – Barre oblique inverse
La barre oblique inverse () garantit que le caractère n'est pas traité d'une manière particulière. Cela peut être considéré comme un moyen d’échapper aux métacaractères.
Par exemple, si vous souhaitez rechercher le point(.) dans la chaîne, vous constaterez que le point(.) sera traité comme un caractère spécial, tout comme l'un des métacaractères (comme indiqué dans le tableau ci-dessus). Donc pour ce cas, nous utiliserons la barre oblique inverse() juste avant le point(.) pour qu'il perde sa spécialité. Voir l'exemple ci-dessous pour une meilleure compréhension.
Exemple:
La première recherche ( re.search(r'.', s)> ) correspond à n'importe quel caractère, pas seulement au point, tandis que la deuxième recherche ( re.search(r'.', s)> ) recherche et correspond spécifiquement au caractère d'époque.
Python3
import> re> > s>=> 'geeks.forgeeks'> > # without using> match>=> re.search(r>'.'>, s)> print>(match)> > # using> match>=> re.search(r>'.'>, s)> print>(match)> |
>
>Sortir
>
2. [] – Crochets
Les crochets ([]) représentent une classe de caractères composée d'un ensemble de caractères que nous souhaitons faire correspondre. Par exemple, la classe de caractères [abc] correspondra à n'importe quel a, b ou c.
Nous pouvons également spécifier une plage de caractères en utilisant – à l’intérieur des crochets. Par exemple,
- [0, 3] est un échantillon comme [0123]
- [a-c] est identique à [abc]
Nous pouvons également inverser la classe de caractères en utilisant le symbole caret(^). Par exemple,
- [^0-3] signifie n'importe quel nombre sauf 0, 1, 2 ou 3
- [^a-c] signifie n'importe quel caractère sauf a, b ou c
Exemple:
Dans ce code, vous utilisez des expressions régulières pour rechercher tous les caractères de la chaîne compris entre « a » et « m ». Le re.findall()> La fonction renvoie une liste de tous ces caractères. Dans la chaîne donnée, les caractères qui correspondent à ce modèle sont : 'c', 'k', 'b', 'f', 'j', 'e', 'h', 'l', 'd', ' g'.
Python3
import> re> > string>=> 'The quick brown fox jumps over the lazy dog'> pattern>=> '[a-m]'> result>=> re.findall(pattern, string)> > print>(result)> |
>
>Sortir
['h', 'e', 'i', 'c', 'k', 'b', 'f', 'j', 'm', 'e', 'h', 'e', 'l', 'a', 'd', 'g']>
3. ^ – Caret
Le symbole Caret (^) correspond au début de la chaîne, c'est-à-dire qu'il vérifie si la chaîne commence par le(s) caractère(s) donné(s) ou non. Par exemple -
- ^g vérifiera si la chaîne commence par g comme geeks, globe, girl, g, etc.
- ^ge vérifiera si la chaîne commence par ge comme geeks, geeksforgeeks, etc.
Exemple:
Ce code utilise des expressions régulières pour vérifier si une liste de chaînes commence par Le . Si une chaîne commence par Le, c'est marqué comme correspondant sinon, il est étiqueté comme Pas adapté.
Python3
import> re> regex>=> r>'^The'> strings>=> [>'The quick brown fox'>,>'The lazy dog'>,>'A quick brown fox'>]> for> string>in> strings:> >if> re.match(regex, string):> >print>(f>'Matched: {string}'>)> >else>:> >print>(f>'Not matched: {string}'>)> |
>
>Sortir
Matched: The quick brown fox Matched: The lazy dog Not matched: A quick brown fox>
4. $ – Dollar
Le symbole Dollar ($) correspond à la fin de la chaîne, c'est-à-dire qu'il vérifie si la chaîne se termine par le ou les caractères donnés ou non. Par exemple-
- s$ vérifiera la chaîne qui se termine par un tel que geeks, fins, s, etc.
- ks$ recherchera la chaîne qui se termine par ks comme geeks, geeksforgeeks, ks, etc.
Exemple:
Ce code utilise une expression régulière pour vérifier si la chaîne se termine par Monde!. Si une correspondance est trouvée, il s'imprime Correspondance trouvée ! sinon, il s'imprime Correspondance non trouvée .
Python3
import> re> > string>=> 'Hello World!'> pattern>=> r>'World!$'> > match>=> re.search(pattern, string)> if> match:> >print>(>'Match found!'>)> else>:> >print>(>'Match not found.'>)> |
>
>Sortir
Match found!>
5. . – Point
Le symbole point (.) ne correspond qu'à un seul caractère, à l'exception du caractère de nouvelle ligne ( ). Par exemple -
- a.b vérifiera la chaîne qui contient un caractère à la place du point tel que acb, acbd, abbb, etc.
- .. vérifiera si la chaîne contient au moins 2 caractères
Exemple:
Ce code utilise une expression régulière pour rechercher le modèle brun.fox dans la chaîne. Le point (.>) dans le motif représente n'importe quel caractère. Si une correspondance est trouvée, il s'imprime Correspondance trouvée ! sinon, il s'imprime Correspondance non trouvée .
Python3
import> re> > string>=> 'The quick brown fox jumps over the lazy dog.'> pattern>=> r>'brown.fox'> > match>=> re.search(pattern, string)> if> match:> >print>(>'Match found!'>)> else>:> >print>(>'Match not found.'>)> |
>
>Sortir
Match found!>
6. | - Ou
Le symbole Ou fonctionne comme l'opérateur ou, ce qui signifie qu'il vérifie si le motif avant ou après le symbole ou est présent ou non dans la chaîne. Par exemple -
- a|b correspondra à n'importe quelle chaîne contenant a ou b telle que acd, bcd, abcd, etc.
7. ? - Point d'interrogation
Le point d'interrogation (?) est un quantificateur dans les expressions régulières qui indique que l'élément précédent doit correspondre zéro ou une fois. Il vous permet de spécifier que l'élément est facultatif, ce qui signifie qu'il peut apparaître une fois ou pas du tout. Par exemple,
- ab?c sera mis en correspondance pour la chaîne ac, acb, dabc mais ne sera pas mis en correspondance pour abbc car il y a deux b. De même, il ne sera pas mis en correspondance pour abdc car b n'est pas suivi de c.
8.* – Étoile
Le symbole étoile (*) correspond à zéro ou plusieurs occurrences de l’expression régulière précédant le symbole *. Par exemple -
- ab*c sera mis en correspondance pour la chaîne ac, abc, abbbc, dabc, etc. mais ne sera pas mis en correspondance pour abdc car b n'est pas suivi de c.
9. + – Plus
Le symbole plus (+) correspond à une ou plusieurs occurrences de l’expression régulière précédant le symbole +. Par exemple -
- ab+c sera mis en correspondance pour la chaîne abc, abbc, dabc, mais ne sera pas mis en correspondance pour ac, abdc, car il n'y a pas de b dans ac et b n'est pas suivi de c dans abdc.
10. {m, n} – Accolades
Les accolades correspondent à toutes les répétitions précédant l'expression régulière de m à n inclus. Par exemple -
- a{2, 4} sera mis en correspondance pour la chaîne aaab, baaaac, gaad, mais ne sera pas mis en correspondance pour les chaînes comme abc, bc car il n'y a qu'un seul a ou aucun a dans les deux cas.
11. () – Groupe
Le symbole de groupe est utilisé pour regrouper les sous-motifs. Par exemple -
- (a|b)cd correspondra aux chaînes comme acd, abcd, gacd, etc.
Séquences spéciales
Les séquences spéciales ne correspondent pas au caractère réel de la chaîne, mais indiquent l'emplacement spécifique de la chaîne de recherche où la correspondance doit se produire. Cela facilite l’écriture de modèles couramment utilisés.
Liste des séquences spéciales
| Séquence spéciale | Description | Exemples | |
|---|---|---|---|
| UN | Correspond si la chaîne commence par le caractère donné | Aphore | pour les geeks |
| pour le monde | |||
| Correspond si le mot commence ou se termine par le caractère donné. (string) vérifiera le début du mot et (string) vérifiera la fin du mot. | ge | les geeks | |
| obtenir | |||
| B | C'est l'opposé du , c'est-à-dire que la chaîne ne doit ni commencer ni se terminer par l'expression régulière donnée. | Bge | ensemble |
| forger | |||
| d | Correspond à n'importe quel chiffre décimal, cela équivaut à la classe définie [0-9] | d | 123 |
| bon sang1 | |||
| D si instruction java | Correspond à n'importe quel caractère non numérique, cela équivaut à la classe définie [^0-9] | D | les geeks |
| geek1 | |||
| s | Correspond à n’importe quel caractère d’espacement. | s | bon sang, ks |
| un avant JC un | |||
| S | Correspond à n'importe quel caractère autre qu'un espace | S | un lit |
| a B c d | |||
| Dans | Correspond à n'importe quel caractère alphanumérique, cela équivaut à la classe [a-zA-Z0-9_]. | Dans | 123 |
| geeks4 | |||
| DANS | Correspond à n'importe quel caractère non alphanumérique. | DANS | >$ |
| donner | |||
| AVEC | Correspond si la chaîne se termine par l'expression régulière donnée | ab | abcdab |
| Bababab |
Fonctions RegEx
concernant le module contient de nombreux les fonctions qui nous aident à rechercher une chaîne pour une correspondance.
Voyons différentes fonctions fournies par ce module pour travailler avec les regex en Python.
| Fonction | Description |
|---|---|
| re.findall() | trouve et renvoie toutes les occurrences correspondantes dans une liste |
| re.compile() | Les expressions régulières sont compilées en objets de modèle |
| re.split() | Diviser une chaîne en fonction des occurrences d'un caractère ou d'un modèle. |
| re.sub() | Remplace toutes les occurrences d'un caractère ou d'un motif par une chaîne de remplacement. |
| re.escape() | Échappe au caractère spécial |
| recherche() | Recherche la première occurrence d'un caractère ou d'un motif |
Voyons le fonctionnement de ces fonctions RegEx avec une définition et des exemples :
1. re.findall()
Renvoie toutes les correspondances qui ne se chevauchent pas du motif dans la chaîne, sous forme de liste de chaînes. La chaîne est analysée de gauche à droite et les correspondances sont renvoyées dans l'ordre trouvé.
Trouver toutes les occurrences d'un modèle
Ce code utilise une expression régulière ( d+> ) pour trouver toutes les séquences d’un ou plusieurs chiffres dans la chaîne donnée. Il recherche des valeurs numériques et les stocke dans une liste. Dans cet exemple, il trouve et imprime les nombres 123456789 et 987654321 à partir de la chaîne d'entrée.
Python3
import> re> string>=> '''Hello my Number is 123456789 and> >my friend's number is 987654321'''> regex>=> 'd+'> > match>=> re.findall(regex, string)> print>(match)> |
>
les algorithmes de tri fusionnent le tri
>Sortir
['123456789', '987654321']>
2. re.compile()
Les expressions régulières sont compilées en objets de modèle, qui disposent de méthodes pour diverses opérations telles que la recherche de correspondances de modèle ou l'exécution de substitutions de chaînes.
Exemple 1:
Le code utilise un modèle d'expression régulière [a-e]> pour rechercher et lister toutes les lettres minuscules de « a » à « e » dans la chaîne d'entrée Oui, a déclaré M. Gibenson Stark. La sortie sera ['e', 'a', 'd', 'b', 'e']> , qui sont les caractères correspondants.
Python
import> re> p>=> re.>compile>(>'[a-e]'>)> > print>(p.findall(>'Aye, said Mr. Gibenson Stark'>))> |
>
>Sortir
['e', 'a', 'd', 'b', 'e', 'a']>
Comprendre le résultat :
- La première occurrence est « e » dans Aye et non « A », car elle est sensible à la casse.
- La prochaine occurrence est « a » dans dit, puis « d » dans dit, suivi de « b » et « e » dans Gibenson, le dernier « a » correspond à Stark.
- La barre oblique inverse du métacaractère « » joue un rôle très important car elle signale diverses séquences. Si la barre oblique inverse doit être utilisée sans sa signification particulière en tant que métacaractère, utilisez ''
Exemple 2 : La classe définie [s,.] correspondra à n’importe quel caractère d’espacement, ‘,’ ou ‘.’ .
Le code utilise des expressions régulières pour rechercher et répertorier tous les chiffres uniques et les séquences de chiffres dans les chaînes d'entrée données. Il trouve des chiffres uniques avec d> et des séquences de chiffres avec d+> .
Python
import> re> p>=> re.>compile>(>'d'>)> print>(p.findall(>'I went to him at 11 A.M. on 4th July 1886'>))> > p>=> re.>compile>(>'d+'>)> print>(p.findall(>'I went to him at 11 A.M. on 4th July 1886'>))> |
>
>Sortir
['1', '1', '4', '1', '8', '8', '6'] ['11', '4', '1886']>
Exemple 3 :
Le code utilise des expressions régulières pour rechercher et répertorier les caractères de mots, les séquences de caractères de mots et les caractères autres que des mots dans les chaînes d'entrée. Il fournit des listes des caractères ou séquences correspondants.
Python
import> re> > p>=> re.>compile>(>'w'>)> print>(p.findall(>'He said * in some_lang.'>))> > p>=> re.>compile>(>'w+'>)> print>(p.findall('I went to him at>11> A.M., he> said>*>*>*> in> some_language.'))> > p>=> re.>compile>(>'W'>)> print>(p.findall(>'he said *** in some_language.'>))> |
>
>Sortir
['H', 'e', 's', 'a', 'i', 'd', 'i', 'n', 's', 'o', 'm', 'e', '_', 'l', 'a', 'n', 'g'] ['I', 'went', 'to', 'him', 'at', '11', 'A', 'M', 'he', 'said', 'in', 'some_language'] [' ', ' ', '*', '*', '*', ' ...>
Exemple 4 :
Le code utilise un modèle d'expression régulière « ab* » pour rechercher et répertorier toutes les occurrences de « ab » suivies de zéro ou plusieurs caractères « b » dans la chaîne d'entrée ababbaabbb. Il renvoie la liste de correspondances suivante : ['ab', 'abb', 'abbb'].
Python
import> re> p>=> re.>compile>(>'ab*'>)> print>(p.findall(>'ababbaabbb'>))> |
>
dérivé partiel en latex
>Sortir
['ab', 'abb', 'a', 'abbb']>
Comprendre le résultat :
- Notre RE est ab*, dont le « a » est accompagné d'un non. de « b », à partir de 0.
- La sortie « ab » est valide en raison du simple « a » accompagné du simple « b ».
- La sortie « abb » est valide en raison du simple « a » accompagné de 2 « b ».
- La sortie « a » est valide en raison du simple « a » accompagné de 0 « b ».
- La sortie « abbb » est valide en raison du simple « a » accompagné de 3 « b ».
3. re.split()
Divisez la chaîne en fonction des occurrences d'un caractère ou d'un modèle. Une fois ce modèle trouvé, les caractères restants de la chaîne sont renvoyés dans le cadre de la liste résultante.
Syntaxe :
re.split(pattern, string, maxsplit=0, flags=0)>
Le premier paramètre, pattern désigne l'expression régulière, string est la chaîne donnée dans laquelle le modèle sera recherché et dans laquelle le fractionnement se produit, maxsplit s'il n'est pas fourni est considéré comme étant égal à zéro « 0 », et si une valeur non nulle est fournie, alors tout au plus autant de scissions se produisent. Si maxsplit = 1, alors la chaîne sera divisée une seule fois, ce qui donnera une liste de longueur 2. Les flags sont très utiles et peuvent aider à raccourcir le code, ce ne sont pas des paramètres nécessaires, par exemple : flags = re.IGNORECASE, dans cette division , la casse, c'est-à-dire la minuscule ou la majuscule, sera ignorée.
Exemple 1:
Divise une chaîne en utilisant des caractères autres que des mots et des espaces comme délimiteurs, renvoyant des mots : ['Words', 'words', 'Words']> . Considère les apostrophes comme des caractères autres que des mots : ['Word', 's', 'words', 'Words']> . Divisions utilisant des caractères et des chiffres autres que des mots : ['On', '12th', 'Jan', '2016', 'at', '11', '02', 'AM']> . Divise en utilisant des chiffres comme délimiteur : ['On ', 'th Jan ', ', at ', ':', ' AM']> .
Python
from> re>import> split> > print>(split(>'W+'>,>'Words, words , Words'>))> print>(split(>'W+'>,>'Word's words Words'>))> print>(split(>'W+'>,>'On 12th Jan 2016, at 11:02 AM'>))> print>(split(>'d+'>,>'On 12th Jan 2016, at 11:02 AM'>))> |
>
>Sortir
['Words', 'words', 'Words'] ['Word', 's', 'words', 'Words'] ['On', '12th', 'Jan', '2016', 'at', '11', '02', 'AM'] ['On ', 'th Jan ', ', at ', ':', ' AM']>
Exemple 2 :
La première instruction divise la chaîne à la première occurrence d'un ou plusieurs chiffres : ['On ', 'th Jan 2016, at 11:02 AM']> . la seconde divise la chaîne en utilisant les lettres minuscules a à f comme délimiteurs, sans tenir compte de la casse : ['', 'y, ', 'oy oh ', 'oy, ', 'ome here'> ]>. Third divise la chaîne en utilisant les lettres minuscules a à f comme délimiteurs, sensibles à la casse : ['', 'ey, Boy oh ', 'oy, ', 'ome here']> .
Python
import> re> print>(re.split(>'d+'>,>'On 12th Jan 2016, at 11:02 AM'>,>1>))> print>(re.split(>'[a-f]+'>,>'Aey, Boy oh boy, come here'>, flags>=>re.IGNORECASE))> print>(re.split(>'[a-f]+'>,>'Aey, Boy oh boy, come here'>))> |
>
>Sortir
['On ', 'th Jan 2016, at 11:02 AM'] ['', 'y, ', 'oy oh ', 'oy, ', 'om', ' h', 'r', ''] ['A', 'y, Boy oh ', 'oy, ', 'om', ' h', 'r', '']>
4. re.sub()
Le 'sub' dans la fonction signifie SubString, un certain modèle d'expression régulière est recherché dans la chaîne donnée (3ème paramètre), et après avoir trouvé le modèle de sous-chaîne est remplacé par repl (2ème paramètre), le compte vérifie et maintient le nombre de fois Cela se produit.
Syntaxe:
re.sub(pattern, repl, string, count=0, flags=0)>
Exemple 1:
- La première instruction remplace toutes les occurrences de « ub » par « ~* » (insensible à la casse) :
'S~*ject has ~*er booked already'>. - La deuxième instruction remplace toutes les occurrences de « ub » par « ~* » (sensible à la casse) :
'S~*ject has Uber booked already'>. - La troisième instruction remplace la première occurrence de « ub » par « ~* » (insensible à la casse) :
'S~*ject has Uber booked already'>. - Quatrièmement, remplace « AND » par « & » (insensible à la casse) :
'Baked Beans & Spam'>.
Python
import> re> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >flags>=>re.IGNORECASE))> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>))> print>(re.sub(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >count>=>1>, flags>=>re.IGNORECASE))> print>(re.sub(r>'sANDs'>,>' & '>,>'Baked Beans And Spam'>,> >flags>=>re.IGNORECASE))> |
>
>Sortir
S~*ject has ~*er booked already S~*ject has Uber booked already S~*ject has Uber booked already Baked Beans & Spam>
5. re.subn()
subn() est similaire à sub() en tous points, sauf dans sa manière de fournir une sortie. Il renvoie un tuple avec le nombre total de remplacements et la nouvelle chaîne plutôt que simplement la chaîne.
Syntaxe:
re.subn(pattern, repl, string, count=0, flags=0)>
Exemple:
re.subn()> remplace toutes les occurrences d'un modèle dans une chaîne et renvoie un tuple avec la chaîne modifiée et le nombre de substitutions effectuées. Il est utile pour les substitutions sensibles et insensibles à la casse.
Python
import> re> > print>(re.subn(>'ub'>,>'~*'>,>'Subject has Uber booked already'>))> > t>=> re.subn(>'ub'>,>'~*'>,>'Subject has Uber booked already'>,> >flags>=>re.IGNORECASE)> print>(t)> print>(>len>(t))> print>(t[>0>])> |
>
>Sortir
('S~*ject has Uber booked already', 1) ('S~*ject has ~*er booked already', 2) 2 S~*ject has ~*er booked already> 6. re.escape()
Renvoie une chaîne avec tous les caractères non alphanumériques avec barre oblique inverse, ceci est utile si vous souhaitez faire correspondre une chaîne littérale arbitraire pouvant contenir des métacaractères d'expression régulière.
Syntaxe:
re.escape(string)>
Exemple:
re.escape()> est utilisé pour échapper les caractères spéciaux dans une chaîne, ce qui permet de l'utiliser en toute sécurité comme modèle dans les expressions régulières. Cela garantit que tous les caractères ayant une signification particulière dans les expressions régulières sont traités comme des caractères littéraux.
Python
import> re> print>(re.escape(>'This is Awesome even 1 AM'>))> print>(re.escape(>'I Asked what is this [a-9], he said ^WoW'>))> |
>
>Sortir
This is Awesome even 1 AM I Asked what is this [a-9], he said ^WoW>
7. recherche()
Cette méthode renvoie None (si le modèle ne correspond pas) ou un re.MatchObject contient des informations sur la partie correspondante de la chaîne. Cette méthode s'arrête après la première correspondance, elle est donc mieux adaptée pour tester une expression régulière que pour extraire des données.
afficher les applications cachées
Exemple: Recherche d'une occurrence du modèle
Ce code utilise une expression régulière pour rechercher un modèle dans la chaîne donnée. Si une correspondance est trouvée, il extrait et imprime les parties correspondantes de la chaîne.
Dans cet exemple spécifique, il recherche un modèle composé d'un mois (lettres) suivi d'un jour (chiffres) dans la chaîne d'entrée Je suis né le 24 juin. Si une correspondance est trouvée, il imprime la correspondance complète, le mois , et la journée.
Python3
import> re> regex>=> r>'([a-zA-Z]+) (d+)'> > match>=> re.search(regex,>'I was born on June 24'>)> if> match !>=> None>:> >print> (>'Match at index %s, %s'> %> (match.start(), match.end()))> >print> (>'Full match: %s'> %> (match.group(>0>)))> >print> (>'Month: %s'> %> (match.group(>1>)))> >print> (>'Day: %s'> %> (match.group(>2>)))> > else>:> >print> (>'The regex pattern does not match.'>)> |
>
>Sortir
Match at index 14, 21 Full match: June 24 Month: June Day: 24>
ENSEMBLES
UN Ensemble est un ensemble de caractères entourés de crochets « [] ». Les ensembles sont utilisés pour faire correspondre un seul caractère dans l’ensemble de caractères spécifié entre parenthèses. Ci-dessous la liste des ensembles :
| Ensemble | Description |
|---|---|
| {n,} | Quantifie le caractère ou le groupe précédent et correspond à au moins n occurrences. |
| * | Quantifie le caractère ou le groupe précédent et correspond à zéro ou plusieurs occurrences. |
| [0123] | Correspond aux chiffres spécifiés (0, 1, 2 ou 3) |
| [^arn] | correspond à n'importe quel caractère SAUF a, r et n |
| d | Correspond à n’importe quel chiffre (0-9). |
| [0-5][0-9] | correspond à n'importe quel nombre à deux chiffres entre 00 et 59 |
| Dans | Correspond à n'importe quel caractère alphanumérique (a-z, A-Z, 0-9 ou _). |
| [un] | Correspond à n’importe quel alphabet minuscule entre a et n. |
| D | Correspond à n'importe quel caractère autre qu'un chiffre. |
| [arn] | correspond où l'un des caractères spécifiés (a, r ou n) est présent |
| [a-zA-Z] | correspond à n'importe quel caractère entre a et z, minuscule OU majuscule |
| [0-9] | correspond à n'importe quel chiffre entre 0 et 9 |
Objet de correspondance
Un objet Match contient toutes les informations sur la recherche et le résultat et si aucune correspondance n'est trouvée, Aucune ne sera renvoyée. Voyons quelques-unes des méthodes et attributs couramment utilisés de l'objet match.
1. Obtenir la chaîne et l'expression régulière
match.re l'attribut renvoie l'expression régulière passée et match.string L'attribut renvoie la chaîne passée.
Exemple: Obtenir la chaîne et l'expression régulière de l'objet correspondant
Le code recherche la lettre g à la limite d'un mot dans la chaîne Bienvenue sur GeeksForGeeks et imprime le modèle d'expression régulière ( res.re> ) et la chaîne d'origine ( res.string> ) .
Python3
import> re> s>=> 'Welcome to GeeksForGeeks'> res>=> re.search(r>'G'>, s)> > print>(res.re)> print>(res.string)> |
>
>Sortir
re.compile('G') Welcome to GeeksForGeeks> 2. Obtenir l'index de l'objet correspondant
- La méthode start() renvoie l'index de départ de la sous-chaîne correspondante
- La méthode end() renvoie l'index de fin de la sous-chaîne correspondante
- La méthode span() renvoie un tuple contenant l'index de début et de fin de la sous-chaîne correspondante
Exemple: Obtenir l'index de l'objet correspondant
Le code recherche la sous-chaîne Gee à la limite d'un mot dans la chaîne Welcome to GeeksForGeeks et imprime l'index de début de la correspondance (res.start()>), l'index de fin du match (res.end()>), et la durée du match (res.span()>).
Python3
import> re> > s>=> 'Welcome to GeeksForGeeks'> > res>=> re.search(r>'Gee'>, s)> > print>(res.start())> print>(res.end())> print>(res.span())> |
>
>Sortir
11 14 (11, 14)>
3. Obtenir une sous-chaîne correspondante
La méthode group() renvoie la partie de la chaîne pour laquelle les modèles correspondent. Voir l'exemple ci-dessous pour une meilleure compréhension.
Exemple: Obtenir une sous-chaîne correspondante
Le code recherche une séquence de deux caractères non numériques suivis d'un espace et de la lettre « t » dans la chaîne Bienvenue sur GeeksForGeeks et imprime le texte correspondant en utilisant res.group()> .
Python3
import> re> s>=> 'Welcome to GeeksForGeeks'> res>=> re.search(r>'D{2} t'>, s)> print>(res.group())> |
>
>Sortir
me t>
Dans l'exemple ci-dessus, notre modèle spécifie la chaîne qui contient au moins 2 caractères suivis d'un espace, et cet espace est suivi d'un t.
Article associé :
Référence:
https://docs.python.org/2/library/re.html
Nous avons discuté de RegEx en Python, nous avons parcouru les métacaractères, les fonctions et les séquences spéciales dans RegEx Python.
L'expression régulière est un concept très important en Python, nous avons essayé de l'expliquer de manière simple. J'espère que cela vous aidera dans votre parcours Python !!