Python Rechercher toutes les occurrences dans la chaîne

Vaibhhav Khetarpal 30 janvier 2023
  1. Utilisez la fonction string.count() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne en Python
  2. Utilisez List Comprehension et startswith() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne en Python
  3. Utilisez le re.finditer() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne en Python
Python Rechercher toutes les occurrences dans la chaîne

Une sous-chaîne en Python est un groupe de caractères qui se produit dans une autre chaîne. Le traitement des sous-chaînes peut souvent être gênant. L’un de ces problèmes consiste à trouver toutes les occurrences d’une sous-chaîne dans une chaîne particulière.

Ce didacticiel abordera différentes méthodes pour trouver toutes les occurrences d’une sous-chaîne dans une chaîne en Python.

Utilisez la fonction string.count() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne en Python

Le string.count() est une fonction intégrée à Python qui renvoie la quantité ou le nombre d’occurrences d’une sous-chaîne dans une chaîne particulière donnée. De plus, il dispose de paramètres supplémentaires start et end pour spécifier les indices des positions de début et de fin.

La méthode count() parcourt la chaîne et renvoie le nombre de fois qu’une sous-chaîne spécifique s’est produite dans la chaîne.

Le code suivant utilise la fonction string.count() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne.

# defining string and substring
str1 = "This dress looks good; you have good taste in clothes."
substr = "good"

# occurrence of word 'good' in whole string
count1 = str1.count(substr)
print(count1)

# occurrence of word 'good' from index 0 to 25
count2 = str1.count(substr, 0, 25)
print(count2)

Production:

2
1

C’est une méthode facile et qui fonctionne dans tous les cas. Le seul inconvénient de cette méthode est qu’elle ne renvoie pas les différents indices auxquels la sous-chaîne apparaît dans la chaîne.

Utilisez List Comprehension et startswith() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne en Python

Cette méthode a besoin de deux choses : la compréhension de liste et la méthode startswith().

La fonction startswith() joue la tâche d’obtenir les indices de début de la sous-chaîne, et la compréhension de la liste est utilisée pour parcourir la chaîne cible complète.

Le code suivant utilise la compréhension de liste et startswith() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne.

# defining string
str1 = "This dress looks good; you have good taste in clothes."

# defining substring
substr = "good"

# printing original string
print("The original string is : " + str1)

# printing substring
print("The substring to find : " + substr)

# using list comprehension + startswith()
# All occurrences of substring in string
res = [i for i in range(len(str1)) if str1.startswith(substr, i)]

# printing result
print("The start indices of the substrings are : " + str(res))

Production:

The original string is : This dress looks good; you have good taste in clothes.
The substring to find : good
The start indices of the substrings are : [17, 34]

Utilisez le re.finditer() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne en Python

re.finditer() est une fonction de la bibliothèque regex que Python fournit aux programmeurs à utiliser dans leur code. Il aide à effectuer la tâche de trouver l’occurrence d’un modèle particulier dans une chaîne. Pour utiliser cette fonction, nous devons d’abord importer la bibliothèque regex re.

re.finditer() utilise les paramètres pattern et string dans sa syntaxe. Dans ce cas, le modèle fait référence à la sous-chaîne.

Le code suivant utilise la fonction re.finditer() pour rechercher toutes les occurrences d’une sous-chaîne dans une chaîne.

import re

# defining string
str1 = "This dress looks good; you have good taste in clothes."

# defining substring
substr = "good"

print("The original string is: " + str1)

print("The substring to find: " + substr)

result = [_.start() for _ in re.finditer(substr, str1)]

print("The start indices of the substrings are : " + str(result))

Production:

The original string is: This dress looks good; you have good taste in clothes.
The substring to find: good
The start indices of the substrings are : [17, 34]
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Article connexe - Python String