Вопрос

Из этого вопроса я получил следующий код: Как лучше всего очистить строку для размещения в URL-адресе, например имя вопроса в SO?

$str = strtolower( 
  preg_replace( array('/[^a-z0-9\- ]/i', '/[ \-]+/'), array('', '-'), 
  $urlPart ) );

Этот код работает для меня с PHP, он делает URL-адрес чистым и оптимизированным для SEO всего в одной строке, но я хочу использовать тот же сценарий в своем приложении ASP.NET(C#).Но не знаю, каким будет код этой строки на C#.Может ли кто-нибудь преобразовать этот PHP-код в функцию C#.

Спасибо

Это было полезно?

Решение

Для простоты, вероятно, проще всего сделать это с помощью двух вызовов замены регулярных выражений, хотя вы мог перепишите его в один, используя Replace перегружать с MatchEvaluator (это было бы немного хакерски).

using System.Text.RegularExpressions;

// ...

var str = Regex.Replace(Regex.Replace(urlPart, @"[^a-z0-9\- ]/i", ""), @"[ \-]+", "-").ToLower();

Надеюсь, это поможет.

Другие советы

Может я что-то упускаю из-за недосыпа..но не могли бы вы просто сделать это:

var myUrl = HttpUtility.UrlEncode(UrlToEncode);

Чтобы выполнить кодирование тире...

var myUrl = HttpUtility.EncodeUrl(UrlToEncode.Replace(" ", "-"));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top