此表达式
[A-Z]+(?=-\d+$)
从以下字符串中找到SS和BCP
ANG-B31-OPS-PMR-MACE-SS-0229
ANG-RGN-SOR-BCP-0004
我想要做的是找到第三个“ - ”之后的值 第一个字符串中的PMR和第二个字符串中的BCP
任何帮助都将受到高度赞赏
答案 0 :(得分:0)
简单String.Split
怎么样?
string input = "ANG-B31-OPS-PMR-MACE-SS-0229";
string value = input.Split('-')[3]; // PMR
答案 1 :(得分:0)
如果您有选项,找到第三个“ - ”并获取输入的子字符串会更简单。请参阅nth-index-of。
var input = "ANG-B31-OPS-PMR-MACE-SS-0229";
input = input.Substring(input.NthIndexOf("-", 3) + 1, 3);
答案 2 :(得分:0)
lookbehind和lookahead将从匹配中排除前后部分
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);
}