Disons que j'ai une liste
list = ['this','is','just','a','test']
comment puis-je faire en sorte qu'un utilisateur effectue une recherche joker ?
Mot clé : 'th_s'.
Retournerait 'ceci'.
Disons que j'ai une liste
list = ['this','is','just','a','test']
comment puis-je faire en sorte qu'un utilisateur effectue une recherche joker ?
Mot clé : 'th_s'.
Retournerait 'ceci'.
Pourquoi n'utilisez-vous pas simplement la fonction de jonction ? Dans une regex findall() ou group() vous aurez besoin d'une chaîne de caractères donc :
import re
regex = re.compile('th.s')
l = ['this', 'is', 'just', 'a', 'test']
matches = re.findall(regex, ' '.join(l)) #Syntax option 1
matches = regex.findall(' '.join(l)) #Syntax option 2
La fonction join() permet de transformer une liste en une chaîne de caractères. Le guillemet simple avant join est ce que vous allez mettre au milieu de chaque chaîne de la liste. Lorsque vous exécutez cette partie de code (' '.join(l)), vous obtenez ceci :
c'est juste un test
Vous pouvez donc utiliser la fonction findal().
Je sais que j'ai 7 ans de retard, mais j'ai récemment créé un compte parce que j'étudie et que d'autres personnes pourraient avoir la même question. J'espère que cela vous aidera, vous et les autres.
Mise à jour après les commentaires de @FélixBrunet :
import re
regex = re.compile(r'th.s')
l = ['this', 'is', 'just', 'a', 'test','th','s', 'this is']
matches2=[] #declare a list
for i in range(len(l)): #loop with the iterations = list l lenght. This avoid the first item commented by @Felix
if regex.findall(l[i]) != []: #if the position i is not an empty list do the next line. PS: remember regex.findall() command return a list.
if l[i]== ''.join(regex.findall(l[i])): # If the string of i position of l list = command findall() i position so it'll allow the program do the next line - this avoid the second item commented by @Félix
matches2.append(''.join(regex.findall(l[i]))) #adds in the list just the string in the matches2 list
print(matches2)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.