2017-09-29 5 views
0

J'ai donc une sous-chaîne qui apparaît deux fois dans mon programme qui ressemble à 00'00" 000.Comment puis-je rechercher 00'00 "000 en utilisant une expression régulière?

j'utilisais à l'origine de l'expression régulière:

\d{2}\'\d{2}\"\d{3} 

et cela fonctionnait pendant quelques jours, mais maintenant pour une raison quelconque, ce n'est pas? La bibliothèque re de Python ne trouve plus ces sous-chaînes. Qu'est-ce que je fais mal ici?

code en question:

elif message.content.startswith('%timegap'): 
    if message.content == '%timegap -h': 
     await client.send_message(message.channel, 
            '```' + 'Usage: %timegap [time 1] [time 2]\n' + \ 
            """Example: %timegap 03'29"110 03'28"390""" + '```') 
    else: 
     time_list = re.findall("\d*\'\d+\"\d+", message.content) 
     await client.send_message(message.channel, calculate_time_gap(time_list)) 
+0

Peut-être parce que l'entrée ne contient pas sous-chaînes correspondantes. Vérifiez les apostrophes bouclées/doubles guillemets. –

+0

pouvez-vous nous donner un exemple du texte que vous essayez d'obtenir des macthes? –

+0

Regex est très bien, donc le problème réside soit sur les chaînes d'entrée ou sur votre code, qui sont tous deux absents de la question. –

Répondre

0

Les citations de vos chaînes ne sont pas les mêmes que celles de votre regex:

re.findall(r'\d{2}\’\d{2}\”\d{3}', '%timegap 03’14”800 03’14”800') 
> ['03’14”800', '03’14”800'] 
+0

Je n'étais pas au courant qu'il y avait des citations différentes Je suppose qu'un téléphone donnerait une citation différente alors maintenant je dois vérifier pour ou Merci beaucoup, j'apprécie l'aide. – Zero