2016-11-10 10 views
2

Est-il possible d'obtenir le nom d'un dossier à partir d'une URL?expression régulière pour obtenir le nom du dossier à partir de l'URL

Par exemple,

https://inside.nov.com/wh/pc/testSourceLib/Folder Z/SubFolder Z1/Copy files from one Document Library to another using Nintex Workflow _ My Learnings.pdf 

  • https://inside.nov.com/wh/pc/ est l'URL Web
  • testSourceLib est le nom de la bibliothèque
  • Folder Z/Subfolder z1 est le nom du dossier

Je dois extraire /Folder Z/Subfolder z1 de l'URL ci-dessus. Je ai essayé ([^\/]*)$ et il me donne le nom de fichier Copy files from one Document Library to another using Nintex Workflow _ My Learnings.pdf.

+0

Essayez '[^/] + (? =/[^ /] * $) 'avec l'option Extract. –

+0

Y a-t-il une raison pour laquelle vous devez utiliser un Regex pour cela et ne pas utiliser le ['Uri.GetComponents' intégré] (https://msdn.microsoft.com/fr-fr/library/system.uri.getcomponents%28v = vs.110% 29.aspx) méthodes qui font déjà cela? –

+0

Oui. J'utilise le flux de travail Nintex et il ne prend que renet .net amical .net et je ne peux pas avoir de codes C#. –

Répondre

1

Vous pouvez utiliser une option basée regex avec préanalyse la Extrait:

/[^/]+/[^/]+(?=/[^/]*$) 

Voir la regex demo

enter image description here

détails Motif:

  • [^/]+ - 1 ou plusieurs caractères autres que / ...
  • (?=/[^/]*$) - puis avec /, zéro ou plusieurs caractères autres que / ([^/]*), puis la fin de la chaîne ($). La construction est une anticipation positive qui est une assertion de largeur nulle qui ne consomme pas le texte (ne le met pas dans la correspondance renvoyée) qui nécessite du texte à droite de l'emplacement actuel dans la chaîne.

Pour raccourcir le modèle un peu, vous pouvez envelopper le /[^/]+ subpattern avec un groupe non-capture et appliquer un quantificateur limitant à ce sujet:

(?:/[^/]+){2}(?=/[^/]*$) 

Voir another demo

+0

Cela me donne "SubFolder Z1" mais j'ai besoin de "/ Dossier Z/Sous-dossier Z1 /" pour être la sortie –

+0

Voir la mise à jour de la réponse. –

+0

Merci Wiktor. Tu as sauvé ma journée. Merci Merci Merci. –