Hi,
ich versuche aktuell Owner und RepoName aus GitHub-URLs, die in NPM-Paketen vorkommen, auszulesen. Mein bisheriges RegEx ist
Das funktioniert auch recht gut, wobei der optionale Lookahead vmtl. nicht 100%ig zielführend ist. Einziges Problem ist nun, dass auch im Repo-Namen bereits Punkte vorkommen können:
Nun könnte ich einfach auch Punkte als Character in der Matching Group erlauben, aber was mache ich dann mit sowas:
Meine Idee war nun
Wie könnte ich also alles bis zum letzten
Die hinteren Non-Whitespace-Character sind einerseits für das
Grüße
ich versuche aktuell Owner und RepoName aus GitHub-URLs, die in NPM-Paketen vorkommen, auszulesen. Mein bisheriges RegEx ist
.*github\.com[\/:](?<repo_owner>[^\/]+)[\/:](?<repo_name>[^/.:]+(?=\/|:|\.)?)\S*
.Das funktioniert auch recht gut, wobei der optionale Lookahead vmtl. nicht 100%ig zielführend ist. Einziges Problem ist nun, dass auch im Repo-Namen bereits Punkte vorkommen können:
https://www.github.com/test/foo.bar
Nun könnte ich einfach auch Punkte als Character in der Matching Group erlauben, aber was mache ich dann mit sowas:
https://www.github.com/test/foo.bar.git
- Hier möchte ja das .git
am Ende nicht haben.Meine Idee war nun
.git
als ganzes in den Lookahead zu integrieren, allerdings matcht [^/.:]+
halt schon alles, was geht. Lazy bringt da leider auch nichts, da ich ja nicht nur einen Character matchen will.Wie könnte ich also alles bis zum letzten
.git
matchen, wenn es da ist? An sich wäre das ja ein Positive Lookahead, aber das Problem ist eben, dass das .git
ja optional sein kann und auch noch andere Sachen möglich sind.Die hinteren Non-Whitespace-Character sind einerseits für das
.git
als auch für sowas gedacht: https://www.github.com/test/foo/tree/v3
Grüße
#define for for(int z=0;z<2;++z)for // Have fun!
Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose!
Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da
Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose!
Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da