在.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 指南)泛型型別
- 在Netty使用中TLSv1.3NettyTLS
- 在asp.net handler 中 使用 sessionASP.NETSession
- 在.NET程式中小心使用String型別型別
- 在.NET Core 中使用Quartz.NETquartz
- 使用CefSharp在.NET中嵌入Google kernelGo
- [轉]在.Net中使用Oracle的表型別和物件型別Oracle型別物件
- xinetd使用指南(二)(轉)
- 在ASP.NET中使用.NET元件 (轉)ASP.NET元件
- Redis在.net中的使用(5)Redis持久化Redis持久化
- 關於 .NET Core(.NET Core 指南)
- NetBSD 中使用 IPSec 指南 (轉)
- 在.NET中操作XmlDocument (轉)XML
- .NET Core(.NET6)中gRPC使用RPC
- netty系列之:在netty中處理CORSNettyCORS
- Redis在.net中的使用(6)Redis併發鎖Redis
- jwt-在asp.net core中的使用jwtJWTASP.NET
- 在ASP.Net2.0中使用UrlRewritingNet實現連結重寫ASP.NET
- netty系列之:在netty中使用proxy protocolNettyProtocol
- 【C# .Net Framework】在.Net Framework中使用gRPCC#FrameworkRPC
- .net中 使用指令碼指令碼
- 框架庫(.NET 指南)框架
- .Net 在容器中操作宿主機
- Redis在.net中的使用(1)下載安裝RedisRedis
- netty系列之:protobuf在UDP協議中的使用NettyUDP協議
- 在Docker中安裝.NET Core(使用命令列工具)Docker命令列
- netty系列之:在netty中使用protobuf協議Netty協議
- 使用RedHat9的telnet:SSH 指南(轉)Redhat
- 【.net基礎】--.NET、winform、Asp.Net區別ORMASP.NET
- Redis在.net中的使用(7)redis部署為Windows服務RedisWindows
- 在.NET Core 3.0中的WPF中使用IOC圖文教程
- 在.NET 6 中如何建立和使用 HTTP 客戶端 SDKHTTP客戶端
- 在VB.Net中建立使用控制元件陣列 (轉)控制元件陣列
- [原創視訊]PHP在netbeans中的簡單使用PHPBean
- .NET AsyncLocal 避坑指南
- Netty權威指南Netty