我有一个包含一个(或多个)键/值对的 XML 文件。对于这些对中的每一对,我想提取一个两字节十六进制值的值。
所以 XML 包含这个片段:
<key>LibID</key><val>A67A</val>
我可以使用以下表达式进行匹配,ID 放在括号中。
Match match = Regex.Match(content, @"<key>LibID</key><val>([a-fA-F0-9]{4})</val>");
if (match.Success)
{
Console.WriteLine("Found Match for {0}\n", match.Value);
Console.WriteLine("ID was {0}\n", "Help me SO!");
}
我如何更改最后一部分以便它从匹配中返回 ID?
干杯!
最佳答案
我觉得你想要
match.Groups[1].Value
(正如 Dillie-O 在评论中指出的那样,它是第 1 组,因为第 0 组始终是整场比赛。)
简短但完整的测试程序:
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
Regex regex = new Regex("<key>LibID</key><val>([a-fA-F0-9]{4})</val>");
Match match = regex.Match("Before<key>LibID</key><val>A67A</val>After");
if (match.Success)
{
Console.WriteLine("Found Match for {0}", match.Value);
Console.WriteLine("ID was {0}", match.Groups[1].Value);
}
}
}
输出:
Found Match for <key>LibID</key><val>A67A</val>
ID was A67A
关于c# - 如何从 .NET RegEx 中提取子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/738543/