• 2 odgovora
  • 2.049 pregleda
Regularni izraz - pomoć 01.04.2010. u 14:05 · pre 201 meseci #1
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?
Re: Regularni izraz - pomoć 01.04.2010. u 14:45 · pre 201 meseci #2
Zar nije lakse

Code:

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

   string[] factors = test.Split(new[]{'+','-'});
Re: Regularni izraz - pomoć 01.04.2010. u 15:41 · pre 201 meseci #3
Može i tako. Ali ovo (?<=^) radi. Radi i ovo (?<=+|-), ali ovo neradi, (?<=+|-|^).
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme