-2
votes

Python Re, Supprimer du tableau de cordes

J'ai un tableau de chaînes comme ceci:

/content/drive/My Drive/Videos/video1.avi
/content/drive/My Drive/Videos/video2.avi
/content/drive/My Drive/Videos/video3.avi


2 commentaires

Devez-vous utiliser Regex? On dirait que vous pouviez le faire assez facilement avec sous-chaîne et indexof (ou même divisé ) et n'apporte pas de regex dans le tout.


[^ /] + (? = \ \. AVI $) ? Démo: Regex101.com/r/sazvbc/1


4 Réponses :


2
votes

Je ne pense pas que vous avez vraiment besoin de regex ici. Vous pouvez faire, xxx

mais si vous voulez vraiment regex, xxx


1 commentaires

Notez que les noms de fichiers peuvent contenir des caractères autres que des lettres, des chiffres, des traits de soulignement et des tirets.



2
votes

Si vous recherchez toujours une regex. XXX


0 commentaires

4
votes

Utilisation de REGEX:

['video1', 'video2', 'video3']


3 commentaires

Notez que les noms de fichiers peuvent contenir des caractères autres que des lettres, des chiffres et des soulignements.


Merci d'avoir fait remarquer cela. @Ahmedabdelhamed J'ai modifié ma réponse maintenant, basée sur la regex que vous avez suggéré dans les commentaires. Merci encore.


Merci! ça marche parfaitement :)



1
votes

Ce n'est peut-être pas la meilleure réponse, mais il est très facile de comprendre. Une fois que vous avez appris cela, vous pouvez essayer de voir comment les autres solutions fonctionnent.

import re

lst = ['/content/drive/My Drive/Videos/video1.avi',
       '/content/drive/My Drive/Videos/video2.avi',
       '/content/drive/My Drive/Videos/video3.avi']

new_lst = []
for line in lst:
    s = re.search('My Drive/Videos/(.*?).avi', line).group(1)
    new_lst.append(s)

print(new_lst)


0 commentaires