C# 正则表达式获取数字和下划线C之间的字符串

C# 正则表达式获取数字和下划线C之间的字符串,c#,.net,regex,C#,.net,Regex,我正在尝试生成一个正则表达式,以获取某个数字和下划线之间的字符串,例如: 我有CP_01Ags_v5,所以我需要一个正则表达式来匹配Ags。另一个例子是CP_13Hgo_v5和匹配Hgo 有什么想法吗?您可以使用环视来匹配数字和下划线之间的字符串,例如 (?<=\d)[A-Za-z]+(?=_) 输出 Ags Hgo 您可以使用“环视”仅匹配数字和下划线之间的字符串,例如 (?<=\d)[A-Za-z]+(?=_) 输出 Ags Hgo 根据您描述的示例和匹配项。你想要的东西

我正在尝试生成一个正则表达式,以获取某个数字和下划线之间的字符串,例如:

我有CP_01Ags_v5,所以我需要一个正则表达式来匹配Ags。另一个例子是CP_13Hgo_v5和匹配Hgo


有什么想法吗?

您可以使用环视来匹配数字和下划线之间的字符串,例如

(?<=\d)[A-Za-z]+(?=_)
输出

Ags
Hgo

您可以使用“环视”仅匹配数字和下划线之间的字符串,例如

(?<=\d)[A-Za-z]+(?=_)
输出

Ags
Hgo

根据您描述的示例和匹配项。你想要的东西跟你的想法差不多

[0-9]+(.*)[_]
把它分解。 正则表达式查找出现一次或多次的任何数字,然后匹配数字后面的所有内容,直到[uz]下划线为止

缺点是假设您提供的示例相似。如果你的例子是

CP_13Hgo_v5asdf_
然后它会匹配

Hgo_v5asdf
如果您有其他可能的发现,那么您需要这个正则表达式的非贪婪版本

这将导致在本例中找到两个组

CP_13Hgo_v5asdf_
将找到以下组:

Hgo


根据您描述的示例和匹配项。你想要的东西跟你的想法差不多

[0-9]+(.*)[_]
把它分解。 正则表达式查找出现一次或多次的任何数字,然后匹配数字后面的所有内容,直到[uz]下划线为止

缺点是假设您提供的示例相似。如果你的例子是

CP_13Hgo_v5asdf_
然后它会匹配

Hgo_v5asdf
如果您有其他可能的发现,那么您需要这个正则表达式的非贪婪版本

这将导致在本例中找到两个组

CP_13Hgo_v5asdf_
将找到以下组:

Hgo

使用正则表达式组:

使用正则表达式组:


如果您的字符串始终至少包含两个字符,并且没有其他至少包含两个字符的字符串,则可以应用以下内容:

var text = "CP_01Ags_v5";
var x = Regex.Match(text, @"(?<!^)[A-Za-z]{2,}");

如果您的字符串始终至少包含两个字符,并且没有其他至少包含两个字符的字符串,则可以应用以下内容:

var text = "CP_01Ags_v5";
var x = Regex.Match(text, @"(?<!^)[A-Za-z]{2,}");