Je suppose que c'est ce que vous recherchez. La partie regex est:
new Regex(@"^\d{6}-\d{5} \w* ([^:]*): ")
Et voici un programme de test, mais complet:
using System;
using System.Text.RegularExpressions;
class Test
{
static void Main(string[] args)
{
Parse("000000-00000 Date First text: something1");
Parse("200000-00000 Time Second text: something2");
Parse("234222-34332 struc Third text: somthing3");
}
static readonly Regex Pattern = new Regex
(@"^\d{6}-\d{5} \w* ([^:]*): ");
static void Parse(string text)
{
Console.WriteLine("Input: {0}", text);
Match match = Pattern.Match(text);
if (!match.Success)
{
Console.WriteLine("No match!");
}
else
{
Console.WriteLine("Middle bit: {0}", match.Groups[1]);
}
}
}
Notez que cela ne suppose pas « Date », « Time » « struc » sont les seules valeurs possibles après les chiffres, juste qu'ils seront construits à partir de caractères de mot. Il suppose également que vous voulez faire correspondre à toute la ligne, pas seulement la partie du milieu. Il est facile d'extraire les autres sections avec d'autres groupes si cela vous serait utile.
Je ne sais pas ce que vous voulez dire. Pourriez-vous fournir un échantillon de ce que vous voulez vraiment faire correspondre/ne pas correspondre? –