Wyrażenia regularne i kilka kłopotów

0

Walczę już jakiś czas z wyrażeniami regularnymi i nie mogę się z nimi uporać:

  1. Z ciągu tekstu, który jest zmienny muszę znaleźć czas. Próbowałem tak niestety bez skutku:

...... matroska,webm, from, yes, 2223:
Czas: 00:04:33.95, st.....

private static string ZnajdzOgolnyCzas(string input)
        {
            return Regex.Replace(input, @"^\sCzas:\s(${czas}).,", "${czas}");
        }
  1. Mam długi tekst w którym występuje kilka wcięć. Jestem w stanie je rozpoznać po pierwszym i ostatnim słowie:

time=00:00:15.46 data2=

Interesuje mnie tylko ta część: 00:00:15.46 jednak nie mam pojęcia, jak poklei przerzucać wszystkie do tablicy - jeden za drugim w celu sprawdzenia czy nie ma powtórzeń.

0

\d\d[:]\d\d[:]\d\d[.]\d\d
tu możesz przetestować:
http://regexlib.com/RETester.aspx?AspxAutoDetectCookieSupport=1
wrzucaj do hashtable, a przed wrzuceniem sprawdzaj czy już tam istnieje string za pomocą contains()

0
private static string ZnajdzOgolnyCzas(string input)
        {
            
            Regex regex = new Regex(@"time=(.*)\sdata2=");
            var v = regex.Match(input);
            return v.Groups[1].ToString();
        }

To jest kod do wyszukiwania, który działa, bo znajduje mi pierwszy ciąg spełniający wymagania. Jak teraz to zapętlić, żeby przeszukać cały tekst w poszukiwaniu tych ciągów oraz przerzucić je do tablicy/listy?

1
Match [] v = regex.Matches(input);

albo

Match [] v = Regex.Matches(input, pattern);
0

Dzięki, jednak doszedłem, że trzeba zastosować MatchColleciton:

MatchColleciton v  = regex.Matches(input);

Ale dzięki kolego za naprowadzenie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1