Récupérer du texte entre 2 motifs
Arthur
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour,
Je souhaite récupérer du texte entre 2 motifs dans un chemin d'accès de ce type :
Mon premier réflexe a été d'écrire :
Mais cela renvoie bien évidemment :
alors que je souhaiterai uniquement :
Sachant que le chemin d'accès peut changer, je voudrai pourvoir isoler les caractères entre le dernier "\" et le ".txt". Et je ne sais pas comment préciser cela...
D'avance merci de votre aide,
Arthur
Je souhaite récupérer du texte entre 2 motifs dans un chemin d'accès de ce type :
C:\Documents and Settings\ASD User\Desktop\Arthur\Arthur\M5a.txt
Mon premier réflexe a été d'écrire :
/\\(.*?)\./
Mais cela renvoie bien évidemment :
Documents and Settings\ASD User\Desktop\Arthur\Arthur\M5a
alors que je souhaiterai uniquement :
M5a
Sachant que le chemin d'accès peut changer, je voudrai pourvoir isoler les caractères entre le dernier "\" et le ".txt". Et je ne sais pas comment préciser cela...
D'avance merci de votre aide,
Arthur
A voir également:
- Récupérer du texte entre 2 motifs
- Supercopier 2 - Télécharger - Gestion de fichiers
- Recuperer message whatsapp supprimé - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Convertisseur récupération de texte - Guide
1 réponse
Salut Arthur,
Tu peux utiliser la regexp suivante :
Il faudra :
- au moins un anti-slash
- n'importe quoi avant le dernier anti-slash
- que la ligne se termine obligatoirement par .txt
N'oublie pas qu'un répertoire peut éventuellement contenir un point dans son nom.
De même, un nom de fichier peut contenir plusieurs points.
Dal
Tu peux utiliser la regexp suivante :
/.*\\+(.*)\.txt$/
Il faudra :
- au moins un anti-slash
- n'importe quoi avant le dernier anti-slash
- que la ligne se termine obligatoirement par .txt
N'oublie pas qu'un répertoire peut éventuellement contenir un point dans son nom.
De même, un nom de fichier peut contenir plusieurs points.
Dal
https://metacpan.org/pod/release/DOM/perl-5.12.5/lib/File/Basename.pm
use File::Basename; fileparse_set_fstype("MSWin32"); # en principe non nécessaire # si tu testes des chemins au # format natif de ton système # d'exploitation my $path = "C:\\Documents and Settings\\ASD User\\Desktop\\Arthur\\Arthur\\M5a.txt"; my($filename, $directories, $suffix) = fileparse($path, ".txt"); print $filename;Cette solution est plus portable.
Normalement, tu n'as pas à préciser fileparse_set_fstype, car Perl "sait" déjà quel est le système sur lequel il tourne.
Dal