2015-04-08 1 views
0

j'ai une chaîne i essayer de faire correspondre un texte et il fonctionne comme je m'y attendaiscréer une paires de valeurs clés de valeurs extraites en python

import re 
s = "This week end is very good" 
v = re.findall(r'(This)',s) 
print v 

sortie:

['This'] 

Mais lorsque je tente de faire un plusieurs matchs, il ne fonctionne pas

import re 
s = "This week end is very good" 
v = re.findall(r'(This)(week)',s) 
print v 

sortie:

[] 

Comment faire un plusieurs matches et je veux une sortie comme des paires de valeurs clés

exemple de sortie:

"This" : "week" 

Répondre

1

Vous devez correspondre au caractère de l'espace. Essayez ceci:

v = re.findall(r'(This) (week)',s) 

Résultat:

v = re.findall(r'(This) (week)',s) 
print v 
[('This', 'week')] 

Pour transformer en une paire clé-valeur, il suffit d'appeler le constructeur dict:

d = dict(v) 
print d 
{'This': 'week'} 
1

Vous devez utiliser l'opérateur d'alternance | si vous souhaitez utiliser plusieurs modèles de recherche.

>>> s = "This week end is very good" 
>>> v = re.findall(r'This|week',s) 
>>> ' : '.join(v) 
'This : week' 
+0

Votre connaissance de l'expression régulière ne manque jamais d'impressionner. +1 :) – Shashank