

Java - regulárny výraz
Mám reťazec:
"abcdef&ghij&lkmn&op&qrstuvwxyz"
Ako mám z reťazca pomocou metódy replaceAll odstrániť všetky výskyty znakov "&" a textu nachádzajúceho sa medzi nimi? V tomto prípade by mal byť výsledný reťazec takýto:
"abcdeflkmnqrstuvwxyz"
Mělo by to spravit tohle AFAIK:
string.ReplaceAll("&", "")
Moc složité to teda nebylo, regulární výraz je supertriviální - ampersand není metaznak, a tudíž se dá normálně nahradit. Javu neumím, ale stačilo mi optat se foogla na syntax...
BTW, Foogla znáš?
aha. ty chceš nahrazovat text mezi ampersandy..
pak je to "&.+&" místo "&"
Díkec, funguje to
funguje ale je když to tam máš jednou, tedy jednu tu řadu s těma divnejma znakama
hm.. to je divné. Mělo by to fungovat vícenásobně, pokud je implementace RegExpu správná. RegExp by měl procházet celý text a nahrazovat všechny (i vícenásobné) stringy - alespoň dle definice.
i Javovská verze by to měla takto dělat: replaceAll("regex", "replacement") replaces all regex matches inside the string with the replacement string you specified.
Mne to fungovalo napriek tomu som sa rozhodol pre vlastné riešenie:
Pretože, mám podozrenie že regulárne výrazy sú málo efektívne.
Java síce nie je moja šálka kávy, ale ak by som nemohol použiť regulárne výrazy, nerobil by som to po písmenkách:
Predpokladám že metóda indexOf je tiež implementovaná tak, že v cykle prechádza všetky znaky po jednom písmene až kým nenarazí na hľadaný znak/reťazec.