Python Extrait Sous-chaîne à l'aide de regex

Python Extrait Sous-chaîne à l'aide de regex

Il peut y avoir plusieurs scénarios de cas où il est nécessaire d'extraire une sous-chaîne d'une chaîne en python. Par exemple, tout en travaillant sur de grands ensembles de données, vous devrez peut-être obtenir des données spécifiques à partir des champs de texte ou faire correspondre un modèle particulier dans une chaîne, comme une adresse e-mail ou un numéro de téléphone. De plus, l'opération d'extraction de la sous-chaîne aide également au traitement et à l'analyse du texte.

Ce message couvrira les approches suivantes:

  • Méthode 1: sous-chaîne d'extrait de python utilisant regex dans «re.Méthode Search () ”
  • Méthode 2: sous-chaîne d'extrait de python à l'aide de regex dans «re.Méthode Match () ”
  • Méthode 3: sous-chaîne d'extrait de python à l'aide de regex dans «re.Méthode findall () ”
  • Méthode 4: sous-chaîne d'extrait de python à l'aide de regex dans «re.Méthode finiter () ”

Méthode 1: sous-chaîne d'extrait de python utilisant regex dans «re.Méthode Search () ”

Le python "concernant.recherche()"La méthode recherche la première occurrence de l'instance du motif ajouté dans une chaîne et publie un"Correspondre" objet. Il peut être invoqué lorsque vous souhaitez localiser une sous-chaîne spécifique à l'intérieur d'une chaîne plus longue, mais ne savez pas à quelle fréquence il se produit.

Syntaxe

Pour utiliser le re.Méthode Search (), suivez la syntaxe donnée:

concernant.Recherche (modèle, chaîne, drapeaux)

Ici:

  • "modèle»Représente le regex que vous souhaitez rechercher.
  • "chaîne»Fait référence à la chaîne spécifiée dans laquelle vous souhaitez rechercher.
  • "drapeaux»Représente les paramètres facultatifs, tels que le mode multi-ligne, la sensibilité à la casse, etc.

Exemple 1: Extraction de la sous-chaîne textuelle à l'aide de «Re.Méthode Search () ”

Pour utiliser le «concernant.recherche()«Méthode pour extraire une sous-chaîne, importe d'abord le«concernant»Module. Ce module offre une prise en charge du regex:

Importer RE

Définissez la chaîne à partir de laquelle vous souhaitez récupérer une sous-chaîne:

String = 'LinuxHint est le meilleur site Web de tutoriel'

Ensuite, spécifiez le regex. Ici, "r"Indique que c'est une chaîne brute pour traiter les contrecoups comme les caractères littéraux, et"meilleur«Est l'expression régulière définie ou regex:

regex = r'best '

Passer le créé "expirat" et "chaîne"Au re.Méthode Search () et stocker l'objet résultant dans le «correspondre»:

match = re.Recherche (regex, chaîne)

Maintenant, ajoutez la condition donnée pour extraire la sous-chaîne appariée du «correspondre”Objet renvoyé par le RE.Méthode Search () et affichez-la sur la console:

Si le match:
sub_string = correspond.groupe()
imprimer (sub_string)

On peut observer que la sous-chaîne «meilleur«A été extrait en utilisant le«groupe()”Méthode de l'objet de correspondance:

Exemple 2: Extraction de la sous-chaîne numérique en utilisant «Re.Méthode Search () ”

Maintenant, définissez une chaîne numérique et recherchez la première occurrence d'un ou plusieurs chiffres en passant le «\d+"Comme le regex à"concernant.recherche()" méthode:

String = '039-6546-0987'
imprimer (re.recherche (r '\ d +', chaîne))

Dans le regexxe spécifié:

  • "\"Est utilisé pour échapper à la lettre"d»(Caractère numérique).
  • "+»Signifie un ou des chiffres de correspondance d'affilée:

Comme vous pouvez le voir, l'objet apparié a été retourné par le «concernant.recherche()" méthode.

Méthode 2: sous-chaîne d'extrait de python à l'aide de regex dans «re.Méthode Match () ”

"concernant.correspondre()"Ne recherche uniquement le regex au début des chaînes et sort un objet de correspondance en cas de recherche réussie. Cette méthode peut être utilisée lorsque vous savez que la sous-chaîne ne se produit qu'au début de la chaîne donnée.

Syntaxe

Pour invoquer le re.Méthode Match (), suivez la syntaxe donnée:

concernant.Match (motif, chaîne, drapeaux)

Exemple

Premièrement, définissez l'expression régulière comme «'^ l… .t $'". Ce regex correspond aux cordes qui commencent par «l", terminer par "t", Et ont exactement 8 caractères.

regex = '^ l… t $'

Ensuite, déclarez la chaîne. Passez-le au re.Méthode Match (), ainsi que le regex comme arguments:

String = 'Linuxhint'
résultat = re.Match (regex, chaîne)

Ajouter le "sinon»Condition et spécifiez les instructions d'impression respectives pour les cas si«Correspondre«L'objet a été retourné ou non:

Si résultat:
imprimer ("la recherche a été effectuée avec succès", résultat)
autre:
imprimer ("La recherche n'a pas réussi.")

Sortir

Méthode 3: sous-chaîne d'extrait de python à l'aide de regex dans «re.Méthode findall () ”

Le "concernant.Trouver tout()”La méthode Python recherche chaque instance d'un motif dans les chaînes données et publie une liste de sous-chaînes extraites. Cette méthode est utilisée dans les scénarios de cas où il est nécessaire de récupérer plusieurs sous-chaînes sans aucun ordre particulier.

Syntaxe

Pour invoquer le re.Méthode findall (), consultez la syntaxe donnée:

concernant.findall (motif, chaîne, drapeaux)

Exemple

Définir une chaîne comprenant des valeurs numériques. Ensuite, spécifiez le modèle regex comme «r '\ d+'"Pour correspondre à un ou plusieurs chiffres:

String = '4 heures CAMP BOOT CAMP LINUXHINT POUR 14 $.99 '
regex = r '\ d +'

Ensuite, appelez le «concernant.Trouver tout()”Méthode et passer le regex défini et la chaîne comme arguments

matchs = re.findall (regex, chaîne)

Maintenant, itérez les retournés "Correspondre”Objet stocké dans la variable correspondants et imprimez les éléments de la console:

pour le match dans les matchs:
imprimer (match)

Sortir

Méthode 4: sous-chaîne d'extrait de python à l'aide de regex dans «re.Méthode finiter () ”

Le "concernant.FindIder ()»La méthode fonctionne de la même manière que le re.Méthode findall (). Cependant, il renvoie un itérateur plutôt qu'une liste de sous-chaînes. Dans Python, cette méthode peut être utilisée lorsqu'il existe un grand ensemble de données et il n'a pas besoin de stocker toutes les correspondances à la fois. Plus précisément, le re.La méthode finditer () traite la sous-chaîne extraite une à la fois.

Syntaxe

Pour invoquer le re.Méthode finider (), suivez la syntaxe donnée:

concernant.findIter (motif, chaîne, drapeaux)

Exemple

Tout d'abord, créez une chaîne. Ensuite, définissez un motif regex comme «r '[a-z] +'«Cela correspond à une ou plusieurs lettres majuscules:

String = 'LinuxHint est le meilleur site Web de tutoriel'
regex = r '[a-z] +'

Passez le regex et la chaîne comme arguments au «concernant.FindIder ()«Méthode et stockez l'objet de correspondance résultant dans«allumettes»:

matchs = re.findIter (regex, chaîne)

Enfin, itérez sur les éléments d'objet correspondants, extraire la sous-chaîne à l'aide de la méthode «Group ()» et imprimez sur la console:

pour le match dans les matchs:
sub_string = correspond.groupe()
imprimer (sub_string)

Sortir

Nous avons compilé des approches essentielles liées à l'extraction de la sous-chaîne à Python.

Conclusion

Pour extraire la sous-chaîne à l'aide de regex dans Python, utilisez le «concernant.recherche()","concernant.match () "," re.findall () ", ou le" re.FindIder ()«Méthodes. Selon vos besoins, utilisez «concernant.recherche()«Méthode lorsqu'il est nécessaire d'extraire uniquement la première instance du regex,«concernant.correspondre()»Extrait la sous-chaîne présente le début d'une chaîne,«concernant.Trouver tout()"Récupère plusieurs sous-chaînes selon le modèle, et enfin"concernant.FindIder ()»Traitez les chaînes multiples une à la fois. Ce blog a couvert les méthodes d'extraction de la sous-chaîne à Python.