C#正则表达式根据分组命名取值
时间: 2023-06-28 13:05:17 浏览: 159
C#的正则表达式
5星 · 资源好评率100%
使用C#正则表达式中的命名分组可以方便地取得匹配结果中指定分组的值。
假设我们有以下文本字符串:
```
My name is John, I am 25 years old.
```
我们想要匹配其中的名字和年龄,可以使用如下的正则表达式:
```csharp
string pattern = @"My name is (?<name>\w+), I am (?<age>\d+) years old\.";
```
在上面的正则表达式中,`(?<name>\w+)` 和 `(?<age>\d+)` 分别表示命名分组,`name` 和 `age` 分别为两个分组的名称。
接下来,可以使用 `Match` 方法进行匹配,并通过分组名称获取结果:
```csharp
string text = "My name is John, I am 25 years old.";
Match match = Regex.Match(text, pattern);
if (match.Success)
{
string name = match.Groups["name"].Value;
int age = int.Parse(match.Groups["age"].Value);
Console.WriteLine($"Name: {name}, Age: {age}");
}
```
输出结果为:
```
Name: John, Age: 25
```
这样就可以方便地根据分组名称取得指定分组的值了。
阅读全文