gpt4 book ai didi

c# - 解析PnPID的正则表达式

转载 作者:行者123 更新时间:2023-11-30 16:27:11 25 4
gpt4 key购买 nike

我想从 PnPID 中获取供应商 ID 和设备 ID 的值,例如,我想从以下字符串中获取供应商 ID“8086”和设备 ID“24D5”。

pci\ven_8086&dev_24D5&subsys_02871014

我的代码是(在 C# 中)

Regex rx = new Regex(@"dev_\d+", RegexOptions.IgnoreCase);
string text = @"pci\ven_8086&dev_2425&subsys_02871014";
MatchCollection matches = rx.Matches(text);
foreach (Match match in matches)
{
Console.WriteLine(watch);
}

但这并没有为我删除前缀“dev_”,并且它无法匹配包含十六进制数字的设备 ID。正确的表达方式是什么?

最佳答案

您必须使用括号创建一个组:

new Regex(@"dev_(\d+)", RegexOptions.IgnoreCase);

然后在第二组中你将只得到数字(第一个总是保留给与整个正则表达式匹配的字符串)。

要匹配十六进制值,请使用:

new Regex(@"dev_([0-9a-f]+)", RegexOptions.IgnoreCase);

要在一个正则表达式中同时匹配设备和供应商,请使用:

new Regex(@"ven_([0-9a-f]+)&dev_([0-9a-f]+)", RegexOptions.IgnoreCase);

关于c# - 解析PnPID的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8134627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com