Maison > développement back-end > Tutoriel Python > Programme Python pour extraire la chaîne jusqu'au premier caractère non alphanumérique

Programme Python pour extraire la chaîne jusqu'au premier caractère non alphanumérique

王林
Libérer: 2023-09-11 12:49:02
avant
1492 Les gens l'ont consulté

Programme Python pour extraire la chaîne jusquau premier caractère non alphanumérique

Les chaînes Python sont des séquences de caractères qui représentent des informations ou des données. Les chaînes normales peuvent contenir divers caractères entourés de guillemets simples ou doubles, mais les chaînes alphanumériques ne contiennent que des chiffres et des lettres. Les chaînes alphanumériques et non alphanumériques sont utilisées et appliquées dans divers scénarios, notamment la protection par mot de passe, le traitement et la vérification des données, le formatage, etc.

Peut identifier et extraire des modèles spécifiques. Nous pouvons également proposer différentes combinaisons en utilisant ces types de cordes. Nous effectuerons des opérations basées sur ces chaînes. Notre tâche consiste à extraire la chaîne jusqu'à ce que le premier caractère non alphanumérique soit rencontré.

Comprendre le problème

Nous devons extraire la sous-chaîne de la chaîne d'origine avant de rencontrer des caractères non alphanumériques. Comprenons cela à travers un exemple.

Scénarios d'entrée et de sortie

Considérons un dictionnaire avec les valeurs suivantes -

Input: Inp_STR = "Sales18@22!Roam"
Copier après la connexion

La chaîne donnée est composée de lettres, de chiffres et de caractères spéciaux. Une fois que nous rencontrons un caractère non alphanumérique, nous devons récupérer la sous-chaîne.

Output: Sales18
Copier après la connexion

Nous pouvons voir qu'une sous-chaîne "Sales18" est renvoyée à partir de la chaîne d'origine car après cela, un caractère non alphanumérique est rencontré, à savoir "@". Maintenant que nous comprenons l'énoncé du problème, discutons de quelques solutions.

Utiliser l'itération

Il s'agit d'un moyen basique et plus simple d'extraire une chaîne en fonction des conditions fournies. Nous allons passer une chaîne et créer une nouvelle variable qui stockera tous les caractères alphanumériques, c'est-à-dire les lettres (majuscules et minuscules) et les chiffres. Après cela, nous passerons en revue la chaîne d'origine et parcourrons chaque caractère.

Nous allons créer une condition pour vérifier si les caractères de la chaîne d'origine sont alphanumériques. Une fois qu'un caractère non alphanumérique est rencontré, la boucle s'interrompt et renvoie la sous-chaîne.

Exemple

Voici un exemple d'extraction d'une chaîne jusqu'au premier caractère non alphanumérique -

Inp_STR = "Sales18@22Roam"
print(f"The original string is: {Inp_STR}")

ExSTR = ""
alphaNum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
for x in Inp_STR:
   if x not in alphaNum:
      break
   else:
      ExSTR += x
print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
Copier après la connexion

Sortie

The original string is: Sales18@22Roam
The extracted string till 1st Non-Alphanumeric character: Sales18
Copier après la connexion
Copier après la connexion

Utilisez le module d'expression régulière + Recherche()

Le module

Regex ou module "re" est un outil de programmation puissant pour rechercher et faire correspondre des modèles. Ces modèles sont transmis sous la forme d’expressions uniques. Grâce à ce module, nous détecterons les motifs non alphanumériques dans les chaînes brutes et récupérerons la première séquence rencontrée. Nous utilisons la fonction "search()" pour rechercher dans une chaîne un motif non alphanumérique représenté par l'expression "W+".

"W" indique les classes non alphanumériques et "+" définit la logique de correspondance continue pour les caractères non alphanumériques. La méthode ".start()" renvoie l'index de départ de la sous-chaîne correspondante, quelle valeur d'index sera utilisée pour récupérer la sous-chaîne souhaitée.

Exemple

Voici un exemple -

import re
Inp_STR = "Sales18@22Roam"
print(f"The original string is: {Inp_STR}")

ExSTR = re.search(r"\W+", Inp_STR).start()
print(f"The 1st non-alphanumeric character is encountered at: {ExSTR}")
ExSTR = Inp_STR[ : ExSTR]

print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
Copier après la connexion

Sortie

The original string is: Sales18@22Roam
The 1st non-alphanumeric character is encountered at: 7
The extracted string till 1st Non-Alphanumeric character: Sales18
Copier après la connexion
Copier après la connexion

Utilisez le module Regex + Findall()

C'est une autre façon d'extraire la chaîne jusqu'à ce que le premier caractère non alphanumérique soit rencontré. Dans cette approche, nous utiliserons la fonction « findall() » du module re pour rechercher toutes les occurrences d'une sous-chaîne constituée de caractères alphanumériques.

obtiendra une liste de sous-chaînes correspondantes et nous récupérerons la première sous-chaîne en utilisant la valeur d'index "0". Nous utiliserons l'expression régulière : "[dA-Za-z]*", qui représente zéro ou plusieurs caractères alphanumériques dans une ligne.

La notation d'expression régulière "d" correspond à n'importe quel nombre entre 0 et 9, "A-Z" correspond à n'importe quelle lettre majuscule entre A à Z, "a-z< /b>" correspond à n'importe quelle lettre minuscule entre a et z.

Exemple

Voici un exemple -

import re
Inp_STR = "Sales18@22Roam"
print(f"The original string is: {Inp_STR}")

ExSTR = re.findall(r"[\dA-Za-z]*", Inp_STR)[0]
print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
Copier après la connexion

Sortie

The original string is: Sales18@22Roam
The extracted string till 1st Non-Alphanumeric character: Sales18
Copier après la connexion
Copier après la connexion

Utilisez la méthode Isalnum()

Dans cette méthode, nous allons parcourir l'index de chaque caractère dans la chaîne d'origine et créer une condition pour vérifier si le caractère à l'index "x" n'est pas alphanumérique. Cela se fait à l'aide de la méthode "isalnum()" qui détermine la nature alphanumérique de la chaîne. Après cela, nous utiliserons le découpage de liste pour extraire la chaîne jusqu'au premier caractère alphanumérique.

Exemple

Voici un exemple -

Inp_STR = "Sales18@22Roam"
print(f"The original string is: {Inp_STR}")

for x in range(len(Inp_STR)):
   if not Inp_STR[x].isalnum():
      ExSTR = Inp_STR[:x]
      print(f"The 1st non-alphanumeric character is encountered at: {x}")
      break
   else:
      ExSTR = Inp_STR
print(f"The extracted string till 1st Non-Alphanumeric character: {ExSTR}")
Copier après la connexion

Sortie

The original string is: Sales18@22Roam
The 1st non-alphanumeric character is encountered at: 7
The extracted string till 1st Non-Alphanumeric character: Sales18
Copier après la connexion
Copier après la connexion

Conclusion

Dans cet article, nous avons discuté de quelques solutions efficaces et optimisées pour extraire une sous-chaîne d'une chaîne lorsque le premier caractère non alphanumérique est rencontré. Nous comprenons les solutions simples et brutes ainsi que les solutions avancées et optimisées. Nous utilisons le module d'expression régulière et utilisons ses fonctions "search()" et "findall()" pour extraire les chaînes pertinentes. Enfin, nous avons discuté d'une autre solution basée sur le découpage de liste, qui consiste à utiliser la méthode "isalnum()".

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!

source:tutorialspoint.com
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