str = "a\b\c\dsdf\matchthis\erwe.txt"
Le dernier nom de dossier.Python: aide sur Regex
Match "matchthis"
str = "a\b\c\dsdf\matchthis\erwe.txt"
Le dernier nom de dossier.Python: aide sur Regex
Match "matchthis"
Mieux vaut utiliser os.path.split(path)
depuis sa plate-forme indépendante. Vous devez appeler deux fois pour obtenir le répertoire final:
path_file = "a\b\c\dsdf\matchthis\erwe.txt"
path, file = os.path.split(path_file)
path, dir = os.path.split(path)
x = "a\b\c\d\match\something.txt"
match = x.split('\\')[-2]
>>> str = "a\\b\\c\\dsdf\\matchthis\\erwe.txt"
>>> str.split("\\")[-2]
'matchthis'
>>> import re
>>> print re.match(r".*\\(.*)\\[^\\]*", r"a\b\c\dsdf\matchthis\erwe.txt").groups()
('matchthis',)
Comme @chrisaycock et @ Rafe-Kettler souligné. Utilisez le x.split (r '\') si vous le pouvez. C'est beaucoup plus rapide, lisible et plus pythonique. Si vous avez vraiment besoin d'une regex, utilisez-en une.
EDIT: En fait, os.path est le meilleur. Plate-forme indépendante. unix/windows etc.
sans l'aide de regex, il suffit de faire:
>>> import os
>>> my_str = "a/b/c/dsdf/matchthis/erwe.txt"
>>> my_dir_path = os.path.dirname(my_str)
>>> my_dir_path
'a/b/c/dsdf/matchthis'
>>> my_dir_name = os.path.basename(my_dir_path)
>>> my_dir_name
'matchthis'
+1, plate-forme indépendante et explicite. – kevpie
'matchthis' .... –
Pas besoin de regex; utilisez juste 'str.split (" \\ ")' ou similaire. – chrisaycock
Travailler avec les répertoires est préférable d'utiliser os.path au lieu de diviser – Rozuur