如何编辑此正则表达式Regex.Replace(encodedUrl, @"[^a-z0-9]", "-");以不删除特殊字符,例如ę,ą,ó,ł等?

这是我的方法。我用它来生成漂亮的URL,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ęąół]"


正则表达式本质上会匹配非a-z,0-9以及您在[]之间放置的其他任何字符-这就是^开头的含义。

10-07 16:42