Regular Expressions em C#

Pessoal,

Tenho o seguinte código em c#:


        static void Main(string[] args)
        {
            Regex padrao = new Regex("(([0-1][0-9])|([2][0-3])):([0-5][0-9]):(([0-5][0-9]))"); 

           Console.WriteLine( padrao.IsMatch("00:00:000") );

Eu queria saber pq está imprimindo true neste caso. Queria que ele permitisse somente dois valores no campo de segundos…

Isso é por que a expressão procura o padrão indicado dentro da string passada, retornando true se o padrão for encontrado, mesmo que haja mais caracteres na string.

Para definir que só e somente o padrão é válido, você precisa iniciar a expressão com o “^” que indica o início da string e terminar com o “$” que indica o fim da string.