我的尝试:
string exp1 = "\\d+G-";
string z = Regex.Match("CN=314G-VK1,OU=Grupper,OU=314,OU=Skole,OU=03Skien,DC=login,DC=sk-asp,DC=no",exp1).Value;
Console.WriteLine(z);
我想从字符串 z 中匹配 314G-VK1 。
在哪里
314 是十进制,可以是任意数字。说 125632588 。
G-是恒定的。
VK1 可以是字符或十进制,但长度仅为3,例如 er5 。
我如何满足要求?
从我的代码中,我仅得到输出 314G-。我尝试了几种方法,但现在对我无济于事。
答案 0 :(得分:3)
您可以使用
string exp1 = @"\d+G-\w{3}";
请参见regex demo
\w{3}
模式将匹配3个字符,即大部分为字母,数字和下划线。您可以根据需要进行调整,例如要仅匹配3个大写ASCII字母或数字,可以使用[A-Z0-9]{3}
。要同时包含小写字母,请将它们添加到字符类[A-Za-z0-9]{3}
中。
.NET正则表达式测试结果:
string exp1 = @"\d+G-\w{3}";
string s = "CN=314G-VK1,OU=Grupper,OU=314,OU=Skole,OU=03Skien,DC=login,DC=sk-asp,DC=no";
string z = Regex.Match(s, exp1)?.Value;
Console.WriteLine(z); // => 314G-VK1
答案 1 :(得分:3)
您几乎是正确的,但是您只需在 G-之后添加[0-9a-zA-Z]{3}
。
string exp1 = "\\d+G-[0-9a-zA-Z]{3}";
string z = Regex.Match("CN=314G-VK1,OU=Grupper,OU=314,OU=Skole,OU=03Skien,DC=login,DC=sk-asp,DC=no", exp1).Value;
Console.WriteLine(z);
查看演示here
答案 2 :(得分:0)
尝试一下: 字符串exp1 = @“ \ d + G- [a-zA-Z0-9] {3}”
[a-zA-Z0-9] {3}将与3个字符的字母数字字符串匹配。