Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

regex C# (nista mi nije jasno)

[es] :: .NET :: regex C# (nista mi nije jasno)

[ Pregleda: 2622 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bobby63
Nis

Član broj: 11398
Poruke: 180
*.dynamic.sbb.rs.



Profil

icon regex C# (nista mi nije jasno)29.02.2012. u 15:17 - pre 147 meseci
Treba da izvrsim neki ogromn set SQL comandi, velicine oko 80kb. Posto iz nekog razloga MySQL (klijent trazi stari MySQL 3.23) connector ne moze da prihvati ovoliki string dobio sam savet da radim parse i izvlacim komandu po komandu.

Nakon pretrage sam dosao do zakljucka da je najbolje da koristim regex ali iz nekog razloga nikako ne mogu da ga nateram da radi.
String je na primer:
Code:
SQLcommand = "bla bla START ovde nesto END bla bla"
i ja hocu da izbrisem sve od START do END i za to koristim komandu:
Code:
SQLcommand = Regex.Replace(SQLcommand, "START*END", " ");
Nakon ovoga se ne desava apsolutno nista.
Ako izvrsim na primer:
Code:
SQLcommand = Regex.Replace(SQLcommand, "START", "end");
onda se radi.
Pitanje je zasto ne radi *, treba li nekako drugacije da definisem ovo?

Pozdrav svima i unapred hvala.
Hear all, trust nothing!
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
*.finsoft.co.yu.

ICQ: 20785904


+4 Profil

icon Re: regex C# (nista mi nije jasno)29.02.2012. u 15:41 - pre 147 meseci
treba da stoji: .*
i pogledaj, da podesis (ne znam sad kako se zove taj property), da ti na first occurence of END upari taj regex, da ne ide do poslednjeg END-a slucajno.
 
Odgovor na temu

mulaz
Ljubljana

Član broj: 47602
Poruke: 2239
212.235.185.*

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


+184 Profil

icon Re: regex C# (nista mi nije jasno)29.02.2012. u 15:45 - pre 147 meseci
Citat:
sallle: treba da stoji: .*
i pogledaj, da podesis (ne znam sad kako se zove taj property), da ti na first occurence of END upari taj regex, da ne ide do poslednjeg END-a slucajno.


.*?
:) (jos upitnik da postaje non-greedy)
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
 
Odgovor na temu

bobby63
Nis

Član broj: 11398
Poruke: 180
*.dynamic.sbb.rs.



Profil

icon Re: regex C# (nista mi nije jasno)29.02.2012. u 19:13 - pre 147 meseci
E hvala puno radi ovo. Samo jos dva pitanja.

1.Kako da prosirim uslov da hvata vise linije?
Tj uslov sada radi ali samo ako je sve u istoj liniji
ali ne i ako je pocetak u jednoj a kraj u nekoj sledecoj liniji?

2. Kako da upotrebim Escape karakter, na primer
\* bi trebalo da bude * ali program prijavljuje gresku?


Hear all, trust nothing!
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
..106.109.adsl.dyn.beotel.net.

ICQ: 20785904


+4 Profil

icon Re: regex C# (nista mi nije jasno)29.02.2012. u 19:32 - pre 147 meseci
* mozes da escapujes koristeci: [*]
taj regex.replace ima overload kome se kao parametar navode neke opcije (flagovi), mislim da tu imas da podesis multiline (pa ti onda . vazi i za \n\r karaktere)...
 
Odgovor na temu

bobby63
Nis

Član broj: 11398
Poruke: 180
*.dynamic.sbb.rs.



Profil

icon Re: regex C# (nista mi nije jasno)29.02.2012. u 19:34 - pre 147 meseci
Pod 2 sam provalio treba \\*, bolesne li sintaxe a i uputstva po netu su katastrofa.

Provalio sam i pod jedan da ima overload sa flagovima.
Treba da stoji RegexOptions.SingleLIne sto je pisac hteo da kaze da posmatra string kao jednu liniju
Code:
SQLcommand = Regex.Replace(SQLcommand, "Nesto", "", RegexOptions.Singleline);

Hvala Puno.

[Ovu poruku je menjao bobby63 dana 29.02.2012. u 20:46 GMT+1]
Hear all, trust nothing!
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: regex C# (nista mi nije jasno)29.02.2012. u 20:19 - pre 147 meseci
Ne zaboravi da c# parser prvi vidi tvoj string a on isto podrzava escape sekvence, tako da string koji ti vidis nije string koji size do regex-a.
Dakle ili koristis "\\*" ili iskljucis c# compiler escaping sa @, tj @"\*". Ja licno vise koristim @, onda mogu da naveem konkretan regex string bez bojazni.


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

bobby63
Nis

Član broj: 11398
Poruke: 180
*.dynamic.sbb.rs.



Profil

icon Re: regex C# (nista mi nije jasno)29.02.2012. u 21:39 - pre 147 meseci
Hvala puno, zbunjivalo me sto po netu svuda pise \* a nigde \\*.
U medjuvremenu sam provalio da ima i
Code:
string daVidimoKakoToIzgleda = Regex.Escape("*");
pa tu proveravam bez ikakve nedoumice sta regex ocekuje.
Jos jednom hvala, ne bih se snasao bez pomoci a evo vec sam napravio ovej parser da radi ispravno.
Hear all, trust nothing!
 
Odgovor na temu

mulaz
Ljubljana

Član broj: 47602
Poruke: 2239
89.142.214.*

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


+184 Profil

icon Re: regex C# (nista mi nije jasno)01.03.2012. u 01:21 - pre 147 meseci
Citat:
bobby63: Hvala puno, zbunjivalo me sto po netu svuda pise \* a nigde \\*.



\* -> znaci "*" (matchuje tamo gde je jedna zvezdica)
\\* -> znaci 0 ili vise "\" znakova (znaci "\" *-puta)
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/
 
Odgovor na temu

[es] :: .NET :: regex C# (nista mi nije jasno)

[ Pregleda: 2622 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.