Autor Zpráva
peta
Profil
reg. vyraz 1 | ? -> /
mam
zdroj = "abc123 6 342 45}{_?> 3 5 gdh";
A ted potrebuji regularnim vyrazem udelat toto:
vysledek = "abc123|342|45|gdh";
cili odmazat 1-pismenkove ("w") retezce a vsechny ne-pismenkove ("W") znaky.

timto smazu vsechny ne-pismenkove
---
reg = new RegExp("W+","g");
vysledek = zdroj.replace(reg,"|");
---

No jo, ale jak to spojit s podminkou pismenkove>1 a jeste treba uvazovat pripad, ze muze byt splneno na konci a zacatku retezce.
---
reg = new RegExp("(W+wW|W+","g");
vysledek = zdroj.replace(reg,"|");
---
Tohle prave provede to same, co predchozi, protoze script pro reg vyraz nazazi treba na retezec "?a!" zpusobem:
- "?" je dalsi W ?
- ne? takze vyhovuje podmince W a dalsi na rade je "a"
- a protoze a nevyhovuje podmince, pokracujeme "!"
- a ten opet vyhovuje podmince W
takze se W+wW v podstate ignoruje

Mno, a
wW zase selze pri "aa?" (splnuje) i "b" (nesplnuje) v retezci "??aa??b"
peta
Profil
Jeste jinak...
Mam retezec a potrebuji z nej vytahnout vsechna slova (\w) vetsi nez 2 (puvodne 1) do pole.

Mysles jsem si, ze to regularnimi vyrazy prepisi a pak vysplituji podle "|".
peta
Profil
no nic, tak jsem to potom zrusil podle delky v poli
reg = new RegExp("[\W]+","g");
a = s.replace(reg,"|");
a = a.split("|");
+ to pole a porovnavani delky
Toto téma je uzamčeno. Odpověď nelze zaslat.