2016-10-10 8 views
-1

würde Ich mag eine GCS URI Form zersetzen:Extract Elternteil aus einem filepath

gs://bucket/folder1/folder2/test.csv 

Ich brauche diese einfangenden Gruppen: "Eimer" und "folder1/folder2/test.csv"

Die Problem ist, dass ich nicht weiß, wie man aus einer Gruppe irgendeines Zeichens ausschließt.

Der Anfang nicht funktioniert:

^(gs:\/\/){1}(?!\/) 

Ich habe auch versucht

^(gs:\/\/){1}(?!.*\/) 

Ich verstehe nicht, warum es, weil ich an anderer Stelle gesehen funktioniert nicht beantworten und es funktionierte. Ich benutze Java/Clojure.

Danke!

EDIT

Mein Punkt ist so etwas wie das Isolieren der "Eimer" Name in meinem GCS zu tun. Ich tought würde dies eine beliebige Zeichenfolge übereinstimmen, die conatin nicht: /:

(?!\/) 

ich einen Faden an anderer Stelle sah aber diesen Anfang die ganze Kette nach gs erfasst: // für mich.

+0

* aus einer Gruppe von einem beliebigen Zeichen * - aus beiden Gruppen, oder was? Wie sollten die erfassten Ergebnisse aussehen? – RomanPerekhrest

+0

* Ich sah Antwort anderswo und es hat funktioniert * - was meinst du? Können Sie uns sagen, wo Sie es gesehen haben? Probieren Sie auch ['^ gs: \/\/([^ \ /] +) \/(. *)'] (Https://regex101.com/r/2vY4Mg/1) aus, wo sich die gesuchten Teile befinden * gefangen*. –

+0

Verwenden Sie 're-groups', um die erfassten Teile zu erhalten. –

Antwort

1

Hier ist ein Beispiel in JS nach Ihren Anforderungen, eine andere Sprache sollte das gleiche.

/^gs:\/\/(.+?)\/(.+)$/ 

Prüfergebnis here