したがって、文字列は次のとおりです。「DC:PPE Env:CH1 Slice:whatever to extract」または「babaasdfsd DC:PPE asdfas Env:CH1 or Slice:whatever」
基本的に、「DC:PPE」「Env:CH1」「Slice:whatever」を見つけて削除しようとしています。
次の正規表現を使用しています:(c#)
Regex r = new Regex(
@"(?:
(?<captured>(?:^|\s+)Slice|Env|Dc:.*?\s+)()
){1}
\1",
(?:^|\s+)
私はSlice | Env | Dcが最初に表示されるか、先頭にスペースがあるかのいずれかに一致させようとしています。.*?\s+
DC:PPE の後のスペースを非貪欲に一致させようとしています。
3 つのマッチすべてをまとめて返したいと思います。これの何が問題なのですか?
string combinedTestSTring = "DC:PPE Env:CH1 Slice:whatever to extract";
Regex r = new Regex(
@"(?:
(?<captured>(?:^|\s+)Slice|Env|Dc:.*?\s+)()
){1}
\1",
RegexOptions.IgnorePatternWhitespace|RegexOptions.IgnoreCase);
var a = r.Matches(combinedTestSTring);