0

この表現

[A-Z]+(?=-\d+$)

次の文字列から SS と BCP を見つけます

ANG-B31-OPS-PMR-MACE-SS-0229

ANG-RGN-SOR-BCP-0004

私がやりたいことは、最初の文字列のPMRと2番目の文字列のBCPである3番目の「-」の後の値を見つけることです

どんな助けでも大歓迎です

4

3 に答える 3

0

シンプルはString.Splitどうですか?

string input = "ANG-B31-OPS-PMR-MACE-SS-0229";
string value = input.Split('-')[3]; // PMR
于 2013-03-19T22:21:49.707 に答える
0

後読みと先読みは、マッチから前後の部分を除外します。

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);
}
于 2013-03-19T22:27:55.917 に答える
0

If you have the option it would be simpler to locate the third "-" and take a substring of the input. See nth-index-of.

var input = "ANG-B31-OPS-PMR-MACE-SS-0229";
input = input.Substring(input.NthIndexOf("-", 3) + 1, 3);
于 2013-03-19T22:24:43.950 に答える