2010-12-08 4 views
1

J'ai besoin d'un Regex ou de toute autre solution pour remplacer un identifiant au milieu d'une URL (pas en chaîne de requête).Comment utiliser une expression régulière pour remplacer un identifiant au milieu d'une URL?

exemple Url:

http://localhost:1876/category/6?sortBy=asc&orderBy=Popular 

Je veux remplacer - catégorie/6 avec catégorie/anotherID.

le routage des thats utilisé est:

routes.MapRoute(
     "categories", 
     "category/{categoryID}/{categoryName}", 
     new { controller = "Search", action = "SearchResults", categoryID = "", categoryName = "" } 
); 

grâce

+0

Est-ce ASP.NET? ASP.NET MVC? Utilisez-vous le routage? Ou est-ce juste une URL aléatoire? Je vois que la plupart des questions que vous avez posées concernent ASP.NET MVC. Si tel est le cas, n'hésitez pas à retag et à fournir plus de détails sur vos routes, ... –

+0

Qu'est-ce que c'est «etc»? D'où vient le numéro 333? Voulez-vous rediriger l'utilisateur? Afficher un lien vers la catégorie 333? – Kobi

+0

merci pour vos commentaires - correction de la question – Gidon

Répondre

2

Vous pouvez utiliser Regex.Replace() pour remplacer le motif "/ catégorie/\ w + \? par catégorie/?'.

string newCategoryId = "333"; 
Regex regex = new Regex(@"/category/\w+\?"); 
string inputString = "http://localhost:1876/category/6?sortBy=asc&orderBy=Popular"; 
string replacementString = string.Format("/category/{0}?", newCategoryId); 
string newUrl = regex.Replace(inputString, replacementString); 
Questions connexes