Wyrażenia regularne - C# - wyciągnięcie liczb

0

Mam problem z wyrażeniami regularnymi w C#. Prośba o pomoc...

Wklejam dwa zrzuty z RAD REGEXP Designera żeby było wszystko jasne i klarowne.

Interesuje mnie liczba po znaku / oraz
liczba w nawiasie lub dwie liczby w nawiasie (rozdzielone minusem).

Chciałbym je wyciągnąć w C# z takich (przykładowych) ciągów:

23.5/230 (1000-2500)
21/203 (3570)
24.5/234
110/1060
111.4/1023 (4555)

DZIĘKI ZA POMOC!

http://imageshack.us/photo/my-images/190/wreg1.jpg/

http://imageshack.us/photo/my-images/580/wreg2.jpg/

0

Jak rozumiem cały zrzut masz w jakimś stringu więc wystarczy użyć metody split dla stringa. W parametrze pobiera ona znak który chcemy żeby dzielił stringa i zwraca ona tablicę stringów o długości zależnej od ilości wystąpień znaku z parametru.

Przykładowo dla pojedynczej linii wygląda to tak:

 
            string linia = "23.5/230 (1000-2500)";

            string[] rozdzielone = linia.Split('/');

            for (int i = 0; i < rozdzielone.Length; i++)
            {
                Console.WriteLine(rozdzielone[i] + Environment.NewLine);
            }

Jeżeli te liczby mają być użyte w jakichś przeliczeniach to mając wszystkie liczby w oddzielnych stringach można wykorzystać klasę Convert.

0

Nie wystarczy Ci taki regex: [0-9.]+, a potem odrzucenie pierwszego wyniku z każdej linii?

0

pedros, myślałem o SPLIT, ale to jest tylko jeden z wielu przykładów, które mam wykonać. Chciałbym to zrobić na WYR. REG.

Czy jest jakiś program który podpowiada jak powinno wyglądać wyr. regularne (po wcześniejszym ustaleniu / wprowadzeniu pewnych danych)?

Druga sprawa, co jest w moim wyrażeniu źle, że wyłapuje mi pierwszą i druga liczbe, trzecia tez, ale nie czwarta po znaku -
Moje wyrażenie jest w okienku nr. 2 :)

KAKTus222

0
var numberPattern = @"(\d{1,}(?:\.\d{1,})?)";
var pattern = string.Format(@"{0}/{0}(?: \({0}(?:-{0})?\))?", numberPattern);

Blee, brzydko to wygląda.

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