regex suppression de nom de fichier à partir du chemin
Comment ai-je pu concevoir une RegEx script qui permettrait de supprimer un nom de fichier à partir d'un chemin d'accès? Le truc est, les chemins d'accès ont toutes sortes de clés pour se jeter dans les œuvres.
Chemins peuvent consister en:
1: "Folder1/Folder2/Folder3.1234/folder4.5678/ApplesandOranges.txt","MoreInfo","EvenMoreInfo"
2: "Folder1/Folder2/Folder3.1234/folder4.91011/","MoreInfo","EvenMoreInfo"
ou même
3: "Folder1/Folder2/Folder3.1234/folder4.5678/ApplesandOranges.zip?CatsAndDogs.txt","MoreInfo","EvenMoreInfo"
Dans les cas 1 et 3, je l'aimerais jusqu'à la fin avec:
Folder1/Folder2/Folder3.1234/folder4.5678/
cependant, il serait acceptable pour la seconde pour revenir en tant que
Folder1/Folder2/Folder3.1234/folder4.5678/ApplesandOranges.zip
mais pas préféré.
Dans le cas 2, il venait de sauter la ligne entièrement, comme il n'y a pas de nom de fichier.
Des suggestions?
En utilisant la norme RegEx via un éditeur de texte. Pas de java utilisation et une telle.
Remarque: Le chemin est juste un exemple. Il pourrait être de 50 dossiers. Ce n'est pas un simple 4 dossiers de tous les temps
s/.*\/(.*)/\1/
?
OriginalL'auteur RpTheHotrod | 2014-09-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser une simple regex comme ceci:
Travail de démonstration
Comme vous pouvez le voir, l'idée est de capturer tout le contenu de la dernière barre oblique en utilisant
(.*\/)
et jeter le reste.*
. De vérifier la substitution de l'article ci-dessus.En fait, vous savez quoi, je peux travailler avec votre réponse. Je vais diviser mon fichier de données en deux parties. Un avec tout, mais filepath, et l'autre avec juste le chemin d'accès et l'utilisation de votre correctif. Merci!
Fede, malheureusement, non. Cependant, je suis venu avec une solution basée sur votre réponse. Je vais être de marquage répondu. J'avais upvote si j'avais la rep à le faire!
OriginalL'auteur Federico Piazza
Vous pouvez utiliser cette.
'$' correspond à la position à la fin de la chaîne, tandis que '[^/]+' correspond à toute chaîne qui n'a pas de '/'.
OriginalL'auteur John Aaron Alcoseba