2009-06-21 7 views

Répondre

0

Ce regex va mettre "ma page-titre" dans le deuxième groupe:

^([^/]*/){2}([^/]*)/$ 

Si vous voulez toujours le dernier groupe, vous pouvez utiliser:

^.*/([^/]*)/$ 
+0

bah, la mise en forme a caché mon * –

+0

^. */n'est pas nécessaire dans la deuxième regex. – statenjason

+0

cela fonctionne très bien !! – Kaos

1

Ce regex vous donne toujours le dernier segment URI dans le premier groupe de capture tant que l'URI se termine par une barre oblique

.+/(.+)/ 

si la barre oblique vous Misses peut parfois utiliser

.+/(.+)/? 
0

Eh bien, je ne suis pas si bon avec regex, mais return null titre?

string url = /hello-world/my-page-text/  
string title = Regex.Match(url, @"^*./([^/])/$").Groups[1].Value; 

il a fait le travail, le * était l'erreur dans le code regex

+0

vous avez besoin d'un + après [^ /] sinon il ne capturait que les titres d'un caractère, ce qui explique pourquoi vous obtenez null. – statenjason

0

Vous pouvez utiliser regex ou String.Split

 //Regex 
     string s = "site.com/hello-world/my-page-title/"; 
     Match match = Regex.Match(s, "([^/]+)/$"); 
     string matchedString = match.Groups[1].Value; 


     //Split 
     string[] sections = s.Split(new char[]{'/'},StringSplitOptions.RemoveEmptyEntries); 
     string lastSection = sections[sections.Length - 1]; 
Questions connexes