In meiner C# -Anwendung baue ich eine Routine, die durch eine URL analysieren wird, ersetzen Sie alle Abschnitte der URL mit den entsprechenden Daten.So entfernen Sie geklammerte Abschnitte einer URL
Zum Beispiel, wenn ich eine URL wie habe:
api.domain.com/users/{id}
und der Benutzer stellt die ID, ersetze ich die ID mit dem angegebenen Wert.
Das ist einfach genug:
if(path.Contains("{id}") path = path.Replace("{id}", id);
jedoch, was ich will ist in der Lage sein, die {id}
aus der URL zu entfernen, wenn keine ID versehen ist, so dass die endgültige URL ist: api.domain.com/users
ich möchte es auch intelligent die Lage sein, Elemente des Pfades in der Mitte zu entfernen, so dass, wenn die uRL ist: api.domain.com/users/{id}/photos
Ich würde erhalten: api.domain.com/users/photos
Dafür möchte ich weiß nicht, den Text des Schlüssels vor der Zeit so {id}
könnte alles sein wie:
{name} {sometext} {anyvalue}
Aber ich, dass jeder muss wissen in geschweiften Klammern enthalten sein.
Jede Hilfe würde sehr geschätzt werden!
Kann verwenden anpassen {0} und ersetzen mit string.Format()? – kat1330
Was haben Sie bisher versucht? Können Sie dies posten "Ich baue eine Routine, die durch eine URL analysieren wird, ersetzen alle Abschnitte" – vipersassassin
2 Punkte: 1. 'if (path.Contains (" {id} ") path = path.Replace (" {id} " , id) '- Sie brauchen nicht den contains check. Sie können' .Replace() 'einfach tun und es wird nur ersetzt, wenn es tatsächlich existiert 2.Warum können Sie nicht immer den replace für die Mitte verwenden ? Die URL funktioniert immer noch, selbst wenn es einen doppelten Schrägstrich gibt. –