Maison > Article > développement back-end > Programme Python pour extraire la chaîne jusqu'au 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é.
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.
Considérons un dictionnaire avec les valeurs suivantes -
Input: Inp_STR = "Sales18@22!Roam"
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
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.
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.
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}")
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
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.
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}")
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
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" correspond à n'importe quelle lettre minuscule entre a et z.
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}")
The original string is: Sales18@22Roam The extracted string till 1st Non-Alphanumeric character: Sales18
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.
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}")
The original string is: Sales18@22Roam The 1st non-alphanumeric character is encountered at: 7 The extracted string till 1st Non-Alphanumeric character: Sales18
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!