在.NET中使用基型別(.NET 指南)
如何:從 URL 中提取協議和埠號
下面的示例從 URL 中提取協議和埠號。
示例
此示例使用 Match.Result
方法返回協議,後面依次跟的是冒號和埠號。
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string url = "http://www.contoso.com:8080/letters/readme.html";
Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
RegexOptions.None, TimeSpan.FromMilliseconds(150));
Match m = r.Match(url);
if (m.Success)
Console.WriteLine(r.Match(url).Result("${proto}${port}"));
}
}
// The example displays the following output:
// http:8080
[!code-vbRegularExpressions.Examples.Protocol#1]
正規表示式模式 ^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/
可按下表中的方式解釋。
模式 | 描述 |
---|---|
^ |
從字串的開頭部分開始匹配。 |
(?<proto>\w+) |
匹配一個或多個單詞字元。 將此組命名為 proto 。 |
:// |
匹配後跟兩個正斜線的冒號。 |
[^/]+? |
匹配正斜線以外的任何字元的一次或多次出現(但儘可能少)。 |
(?<port>:\d+)? |
匹配後跟一個或多個數字字元的冒號的零次或一次出現。 將此組命名為 port 。 |
/ |
匹配正斜線。 |
Match.Result
方法擴充套件 ${proto}${port}
替換序列,以連線在正規表示式模式中捕獲的兩個命名組的值。 便捷的替換方法是,顯式連線從 Match.Groups
屬性返回的集合物件檢索到的字串。
此示例使用有兩處替換(${proto}
和 ${port}
)的 Match.Result
方法,在輸出字串中新增捕獲組。 可以改為從匹配的 GroupCollection
物件檢索捕獲組,如下面的程式碼所示。
Console.WriteLine(m.Groups["proto"].Value + m.Groups["port"].Value);
相關文章
- LiteDB在.NET中如何使用
- Redis在.net中的使用(2).net專案中的Redis使用Redis
- 泛型型別(.NET 指南)泛型型別
- 在.NET Core 中使用Quartz.NETquartz
- 使用CefSharp在.NET中嵌入Google kernelGo
- 在.NET 6中使用DateOnly和TimeOnly
- 在.NET中使用DiagnosticSource
- 關於 .NET Core(.NET Core 指南)
- .NET Core(.NET6)中gRPC使用RPC
- 【C# .Net Framework】在.Net Framework中使用gRPCC#FrameworkRPC
- Redis在.net中的使用(5)Redis持久化Redis持久化
- 框架庫(.NET 指南)框架
- 在.NET中體驗GraphQL
- Redis在.net中的使用(6)Redis併發鎖Redis
- jwt-在asp.net core中的使用jwtJWTASP.NET
- 在.NET Core中使用Channel(一)
- .Net Core在Middleware中解析RouteData
- .Net 在容器中操作宿主機
- .NET AsyncLocal 避坑指南
- Redis在.net中的使用(1)下載安裝RedisRedis
- ASP.Net Core 3.1 使用gRPC入門指南ASP.NETRPC
- .NET平臺系列24:從.NET Framework遷移到.NET Core/.NET5的技術指南Framework
- goalng中net/rpc的使用GoRPC
- 在ASP.NET Core 中使用 .NET Aspire 訊息傳遞元件ASP.NET元件
- 在 Arch Linux 中使用 .NET Core SDKLinux
- 在 .NET 中使用 OPC UA 協議協議
- 在ASP.NET Core中使用ViewComponentASP.NETView
- .net 5+ 知新:【2】 .Net Framework 、.Net 、 .NET Standard的概念與區別Framework
- 在 ASP.NET Core 中禁用HTTPSASP.NETHTTP
- 在.NET 6.0中自定義介面路由路由
- 在 .NET Core 中構建 REST APIRESTAPI
- 在NET8中使用簡化的 AddJwtBearer 認證JWT
- Redis在.net中的使用(7)redis部署為Windows服務RedisWindows
- 在.NET Core 3.0中的WPF中使用IOC圖文教程
- 在.NET 6 中如何建立和使用 HTTP 客戶端 SDKHTTP客戶端
- 在ASP.NET Core中用HttpClient(六)——ASP.NET Core中使用HttpClientFactoryASP.NETHTTPclient
- 本計劃在 .NET 8 中推出的 WASI 推遲到 .NET 9
- .Net Core中簡單使用MongoDBMongoDB