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

Regularni izraz - pomoć

[es] :: .NET :: .NET Desktop razvoj :: Regularni izraz - pomoć

[ Pregleda: 1498 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dontoo

Član broj: 249815
Poruke: 40
*.adsl.net.t-com.hr.



+1 Profil

icon Regularni izraz - pomoć01.04.2010. u 14:05 - pre 170 meseci
Pošto nema regex podforuma a programiram u .net-u postavit ću pitanje ovdje.
Ovo je string : 2x^3*3y^2-2x^2y-12xy+3x^3y^4+xy^2
Ja želim izvuči sve između + i - ( podjelit ovaj algebarski izraz na članove ( 2x^3*3y^2 2x^2y 3x^3y^4 xy^2 )). Problem je što na početku i na kraju stringa nema plusa ni minusa. Koristim lookahead and lookbehinde ovako ((?<=\-|\+|^).+?(?=\-|\+|$)). Problem je što kad koristim ^ za gledanje na početak javi mi grešku da lookbehinde mora imati fix width pattern. Ako napišem ovako ((?<=\-|\+).+?(?=\-|\+|$)) , ista stvar bez ^ ne izvuče mi prvi član.
Obasnit ći ovaj regex.
?<=\-|+|^ lookbehinde - ili + ili ^ (početak stringa, tu mi javi grešku )
.+? izvuči sve između ( nemoj biti pohlepan )
?=\-|\+|$ lookahead - ili + ili $ ( kraj, tu je sve ok, izvuče zadnji član )

Zašto ^ ne radi? Kako da izvučem prvi član a da ne kompliciram ovaj regex?
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.static.sbb.rs.



+987 Profil

icon Re: Regularni izraz - pomoć01.04.2010. u 14:45 - pre 170 meseci
Zar nije lakse

Code:

   string test = "2x^3*3y^2-2x^2y-12xy+3x^3y^4+xy^2";

   string[] factors = test.Split(new[]{'+','-'});
 
Odgovor na temu

dontoo

Član broj: 249815
Poruke: 40
*.adsl.net.t-com.hr.



+1 Profil

icon Re: Regularni izraz - pomoć01.04.2010. u 15:41 - pre 170 meseci
Može i tako. Ali ovo (?<=^) radi. Radi i ovo (?<=+|-), ali ovo neradi, (?<=+|-|^).
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Regularni izraz - pomoć

[ Pregleda: 1498 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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