Python Trova tutte le occorrenze in String

Vaibhhav Khetarpal 30 gennaio 2023
  1. Usa la funzione string.count() per trovare tutte le occorrenze di una sottostringa in una stringa in Python
  2. Usa List Comprehension e startswith() per trovare tutte le occorrenze di una sottostringa in una stringa in Python
  3. Usa re.finditer() per trovare tutte le occorrenze di una sottostringa in una stringa in Python
Python Trova tutte le occorrenze in String

Una sottostringa in Python è un cluster di caratteri che si verifica all’interno di un’altra stringa. Gestire le sottostringhe può spesso essere problematico. Uno di questi problemi è trovare tutte le occorrenze di una sottostringa all’interno di una particolare stringa.

Questo tutorial discuterà diversi metodi per trovare tutte le occorrenze di una sottostringa all’interno di una stringa in Python.

Usa la funzione string.count() per trovare tutte le occorrenze di una sottostringa in una stringa in Python

La string.count() è una funzione incorporata in Python che restituisce la quantità o il numero di occorrenze di una sottostringa in una determinata stringa particolare. Inoltre, dispone di parametri aggiuntivi start e end per specificare gli indici delle posizioni di partenza e di arrivo.

Il metodo count() attraversa la stringa e restituisce il numero di volte che una specifica sottostringa si è verificata nella stringa.

Il codice seguente usa la funzione string.count() per trovare tutte le occorrenze di una sottostringa in una stringa.

# 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)

Produzione:

2
1

È un metodo facile e funziona in ogni caso. L’unico inconveniente di questo metodo è che non restituisce i diversi indici in corrispondenza dei quali si verifica la sottostringa nella stringa.

Usa List Comprehension e startswith() per trovare tutte le occorrenze di una sottostringa in una stringa in Python

Questo metodo ha bisogno di due cose: la comprensione delle liste e il metodo startswith().

La funzione startswith() svolge il compito di ottenere gli indici iniziali della sottostringa e la comprensione delle liste viene utilizzata per scorrere l’intera stringa di destinazione.

Il codice seguente utilizza la comprensione delle liste e startswith() per trovare tutte le occorrenze di una sottostringa in una stringa.

# 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))

Produzione:

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]

Usa re.finditer() per trovare tutte le occorrenze di una sottostringa in una stringa in Python

re.finditer() è una funzione della libreria regex che Python fornisce ai programmatori da usare nel loro codice. Aiuta a svolgere il compito di trovare l’occorrenza di un particolare modello in una stringa. Per utilizzare questa funzione, dobbiamo prima importare la libreria regex re.

re.finditer() utilizza il parametro pattern e string nella sua sintassi. In questo caso, il pattern fa riferimento alla sottostringa.

Il codice seguente utilizza la funzione re.finditer() per trovare tutte le occorrenze di una sottostringa in una stringa.

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))

Produzione:

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

Articolo correlato - Python String