Como converter esse script PHP em C #?
Pergunta
Eu tenho o seguinte código a partir desta pergunta: Qual é a melhor maneira de limpar uma corda para a colocação em uma URL, como o nome pergunta sobre SO?
$str = strtolower(
preg_replace( array('/[^a-z0-9\- ]/i', '/[ \-]+/'), array('', '-'),
$urlPart ) );
Esse código funciona para mim com PHP, a sua tornando limpo e url do SEO'd em apenas uma linha, mas eu quero usar o mesmo script na minha aplicação ASP.NET (C #). Mas não sei o que vai ser o código para esta linha em C #. Alguém por favor pode converter este código PHP em função de C #.
Graças
Solução
Para mantê-lo simples, é provavelmente mais fácil de fazê-lo com dois regex substituir chamadas, embora você poderia reescrevê-lo em um usando a sobrecarga Replace
com MatchEvaluator
(seria um pouco hacky).
using System.Text.RegularExpressions;
// ...
var str = Regex.Replace(Regex.Replace(urlPart, @"[^a-z0-9\- ]/i", ""), @"[ \-]+", "-").ToLower();
Espero que ajude.
Outras dicas
eu possa estar faltando alguma coisa, devido à falta de sono .. mas você não poderia simplesmente fazer isso:
var myUrl = HttpUtility.UrlEncode(UrlToEncode);
Para fazer traço codificação ...
var myUrl = HttpUtility.EncodeUrl(UrlToEncode.Replace(" ", "-"));