Как преобразовать этот PHP-скрипт в C#?
Вопрос
Из этого вопроса я получил следующий код: Как лучше всего очистить строку для размещения в 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(" ", "-"));