[ dava @ 05.03.2009. 19:42 ] @
Treba mi metoda koja ce kao ulazni argument dobiti string i taj string parsirati i slagati u objekt klase ArrayList. Taj string ce biti u ovakvom formatu:

Code:

[69b2]21 3466     1545 2 2323   ad     [1f35]242 3634 37 4   d      4[63 37 37347 347   23[9636]134 3463 3 43478 457 7 3    346 ...


delimiteri za parsiranje bi trebali biti [xxxx] (kockaste zagrade sa cetiri karaktera u njima), a rezultat u ArrajList-i

Code:

21 3466     1545 2 2323   ad     
242 3634 37 4   d      4[63 37 37347 347   23
134 3463 3 43478 457 7 3    346


Ovo mogu izvesti vrteci kroz petlju i provjeravati gdje se nalaze djelovi stringa sa sagradama i tu sjeci, ali vjerujem da postoji nekakav elegantniji nacin.
[ dava @ 05.03.2009. 20:55 ] @
Pokusao sam nesto ovako preko regular expr.:
Code:

        string values = "[69b2]21 3466     1545 2 2323   ad     [1f35]242 3634 37 4   d      4[63 37 37347 347   23[9636]134 3463 3 43478 457 7 3    346";

        string pattern = "[????]";
        Regex r = new Regex(pattern);
            
        string[] sites = r.Split(values);
        foreach (string s in sites)
        {
            Debug.WriteLine(s);

        }

ali kako da mu kazem da je pattern string sa 6 karaktera i sa prvom otvorenom i zadnjim zatvorenom zagradom, dok su ovi izmedju nebitni.
[ vujkev @ 05.03.2009. 22:01 ] @
Code:
\[\w{6}\]
[ dava @ 06.03.2009. 07:12 ] @
Moze li da ulozim jokera pa da mi kazes dve-tri rijeci. :)
Nisam skont'o gdje ovo da stavim.
[ vujkev @ 06.03.2009. 09:18 ] @
Sorry

Tražio si samo pattern string pa sam samo to i napisao :)

"[" u regex-u ima posebno značnenje tako da ukoliko žeiš da tražiš taj karakter moraš ispred njega da staviš "escape" karakter tj "\"
\w je bilo koji alfanumerički karakter
{6} ozačava koliko ponavljanja treba da ima predhodni karakter/grupa ili šta se već (u ovom slučaju treba ti 6 alfanumeričkih karaktera)

Code:

        string values = "[69b2]21 3466     1545 2 2323   ad     [1f35]242 3634 37 4   d      4[63 37 37347 347   23[9636]134 3463 3 43478 457 7 3    346";

        string pattern = "\[\w{6}\]";
        Regex r = new Regex(pattern);
            
        string[] sites = r.Split(values);
        foreach (string s in sites)
        {
            Debug.WriteLine(s);

        }


Pogledaj ovo http://www.ultrapico.com/Expresso.htm. Odličan program za kreiranje regex patern-a
[ dava @ 06.03.2009. 09:34 ] @
Prijavljuje mi gresku na ovoj liniji:

Code:
string pattern = "\[\w{6}\]";


tacnije podvuce mi i otvorenu zagradu, zatvorenu zagradu i w zbog greske 'Unrecognized escape sequence'.
[ vujkev @ 06.03.2009. 09:54 ] @
Code:
string pattern = @"\[\w{4}\]";
        
[ dava @ 06.03.2009. 10:22 ] @
E to ce biti rjesenje. Probavao sam ja i sa duplim kosim, ali nisam stavio cetvorku, nego sam se drzao sestice, a kad malo skontam pa unutra su cetiri karaktera.
Hvala i pozdrav