2016-04-06 1 views
-1

Je dois écrire une fonction qui prendra une chaîne comme argument et donnera la description de la chaîne en sortie. Donc, quand j'insérer la chaîne suivante dans ma fonction:Python - diviser une chaîne avec des résultats d'expressions régulières et la dépouiller

"12:30 – 13:00  Red Light Radio – Ovational Exercises" 

La sortie doit être:

"Red Light Radio – Ovational Exercises" 

Je sais que je peux me débarrasser de tous les espaces en utilisant .strip() mais je peux » t comprendre comment diviser la phrase entre la date et la description. J'utilise des expressions régulières pour trouver le temps pour que je puisse diviser la phrase au dernier indice du temps, mais il ne fonctionne pas pleinement

Mon code actuel:

def extract_activity(string): 
    time_expressions=re.findall(r'[\d.:]+.*[\d.:]+', string)[0] 
    string.split(time_expressions[-1]) 

    return string 


test = "12:30 – 13:00  Red Light Radio – Ovational Exercises" 
extract_activity(test) 

Je veux « Red Light Radio - Ovational Exercices "en conséquence, mais ma commande séparée ne fonctionne pas. La commande split doit diviser la chaîne en deux chaînes, l'une contenant l'heure et l'autre contenant les lettres, après quoi je devrais utiliser .strip() pour me débarrasser de tous les espaces.

Toute aide sera appréciée

+0

Quelle est la sortie de 'extract_activity (test)'? Cela provoque-t-il une erreur? –

Répondre

0

Juste correspondre à la ligne entière:

mtch = re.match('^\s*\d+:\d+\s*-\s*\d+:\d+\s+(.*?)\s*$', text) 
activity = mtch.group(1)