"Christian Liljedahl" <chrlilje@kfumscout.dk.dk> wrote in message
news:a5efed$jgn$1@sunsite.dk...
> Jeg vil gerne opnå følgende:
> ($var11 * $var12) + $var117
> skal omdannes til
> (<input type="text" name="var11"> * <input type="text" name="var12">) +
> <input type="text" name="var117">
>
> Der kan være et ukendt antal $... i strengen.
Hvis du tillader generelle parrenteser får du problemer: *så vidt jeg
husker* fra automateori er parrentes-ballancering/parsing ikke et "regulært
sprog" (dvs. ikke direkte muligt med regex). Det kræver rekursion eller
lign. ("kontekstfrit sprog").
Nok teori :)
Hvis du havde a+b*c+d-e/f ville det være nemt at finde de enkelte led ved at
splitte først efter + og -, og derefter de enkelte faktorer ved * og / (og
så selvfølgelig huske om det var det ene eller det andet tegn).
MEN: Jeg kan ikke se hvordan man parser
a*(b+c/(e-f))
med regex, ikke uden rekursion (eller lign.) i hvert fald.
Desværre.
Hvad skal du da bruge det til?
--
Mvh. Mogens
B.Sc. i datalogi. Søger IT-job på Fyn!
www.momech.dk