Skip to main content
 首页 » 编程设计

c#之匹配模式 dddG-xyz 的正则表达式

2024年02月04日35lhb25

我的尝试:

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-。我尝试了几种方法,但这对我没有帮助了。

请您参考如下方法:

你可以使用

string exp1 = @"\d+G-\w{3}"; 

参见 regex demo

\w{3} 模式将匹配 3 个单词字符,即主要是字母、数字、下划线。如果需要,您可以对其进行精确设置,例如要仅匹配 3 个大写 ASCII 字母或数字,您可以使用 [A-Z0-9]{3}。要同时包含小写字母,请将它们添加到字符类 [A-Za-z0-9]{3}。

Regulex regex graph :

.NET正则表达式测试结果:

C# code demo :

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