这个表达
[A-Z]+(?=-\d+$)
从以下字符串中找到 SS 和 BCP
ANG-B31-OPS-PMR-MACE-SS-0229
ANG-RGN-SOR-BCP-0004
我想要做的是找到第三个“-”之后的值,这是第一个字符串中的 PMR 和第二个字符串中的 BCP
任何帮助将不胜感激
这个表达
[A-Z]+(?=-\d+$)
从以下字符串中找到 SS 和 BCP
ANG-B31-OPS-PMR-MACE-SS-0229
ANG-RGN-SOR-BCP-0004
我想要做的是找到第三个“-”之后的值,这是第一个字符串中的 PMR 和第二个字符串中的 BCP
任何帮助将不胜感激
简单String.Split
呢?
string input = "ANG-B31-OPS-PMR-MACE-SS-0229";
string value = input.Split('-')[3]; // PMR
如果您有选项,找到第三个“-”并获取输入的子字符串会更简单。请参见第 n 个索引。
var input = "ANG-B31-OPS-PMR-MACE-SS-0229";
input = input.Substring(input.NthIndexOf("-", 3) + 1, 3);
lookbehind 和 lookahead 将从匹配中排除 pre 和 post 部分
string mus = "ANG-B31-OPS-PMR-MACE-SS-0229";
string pat = @"(?<=([^-]*-){3}).+?(?=-)";
MatchCollection mc = Regex.Matches(mus, pat, RegexOptions.Singleline);
foreach (Match m in mc)
{
Console.WriteLine(m.Value);
}