如何比较两个网址,一个带www,另一个不带www

问题描述 投票:0回答:1

我正在尝试比较 2 个网址,例如

http://www.example.com
http://example.com
,期望输出结果是它们相似。

我使用 Uri 类来表示 url,并使用 Uri.Compare 使用指定的比较规则来比较两个 Uris 的指定部分。

Uri uri1 = new Uri("http://www.example.com");
Uri uri2 = new Uri("http://example.com");
var result = 
    Uri.Compare(
        uri1,
        uri2,
        UriComponents.NormalizedHost | UriComponents.PathAndQuery,
        UriFormat.SafeUnescaped, StringComparison.OrdinalIgnoreCase
    );
Console.WriteLine (result);

我已经分别使用

UriComponents.Host
UriComponents.NormalizedHost
进行了测试,它们分别匹配主机数据和规范化主机,但它们似乎都比较网址的整个域名(www.example.comexample.com)在这种情况下。请参阅 UriComponents Enum 了解更多信息。

有没有办法使用 Uri.Compare 来比较这些(带有 www无 www 的网址)?如果不是,还有什么其他解决方案适合这种情况?

c# url compare uri
1个回答
0
投票

如果 Uri.Compare 不起作用。可以获取字符串格式的 url,并使用正则表达式 (Regex) 进行比较。 https://learn.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=net-8.0

Uri 类可能有解决方案,但我对这个类及其功能不太熟悉。

© www.soinside.com 2019 - 2024. All rights reserved.