MVC漂亮的url和正则表达式中的特殊字符
本文关键字:特殊字符 正则表达式 url 漂亮 MVC | 更新日期: 2023-09-27 18:17:20
如何编辑这个正则表达式Regex.Replace(encodedUrl, @"[^a-z0-9]", "-");
不删除特殊字符,如ę,ą,ó,ł
等?
.,#$%@:;
在URL。 public static string ToSeoUrl(this string url)
{
// make the url lowercase
string encodedUrl = (url ?? "").ToLower();
// replace & with and
encodedUrl = Regex.Replace(encodedUrl, @"'&+", "and");
// remove characters
encodedUrl = encodedUrl.Replace("'", "");
// remove invalid characters
encodedUrl = Regex.Replace(encodedUrl, @"[^a-z0-9]", "-");
// remove duplicates
encodedUrl = Regex.Replace(encodedUrl, @"-+", "-");
// trim leading & trailing characters
encodedUrl = encodedUrl.Trim('-');
return encodedUrl;
}
对
您可以在字符类中添加特殊字符:
@"[^a-z0-9ęąół]"
regex基本上匹配任何不是a-z, 0-9和任何其他字符之间的[]
-这是^
在开始的意思。
虽然这不能直接回答你的问题,但下面的方法可以去除重音,变音符等。
public static String RemoveAccentsAndDiacritics(this String s)
{
return string.Join(string.Empty,
s
.Normalize(NormalizationForm.FormD)
.Where(c =>
CharUnicodeInfo.GetUnicodeCategory(c) !=
UnicodeCategory.NonSpacingMark));
}