我从这个问题中得到了以下代码:清理字符串以放置在URL中的最佳方法是什么,例如SO上的问题名称?

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

这段代码适用于PHP,它只需一行即可完成SEO和SEO的URL,但我希望在我的ASP.NET(C#)应用程序中使用相同的脚本。但是不知道C#中这行的代码是什么。任何人都可以将这个PHP代码转换为C#函数。

由于

有帮助吗?

解决方案

为了简单起见,使用两个正则表达式替换调用可能最简单,尽管可以使用替换重载将其重写为一个 MatchEvaluator (这会有点hacky)。

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