Autor Zpráva
DarkMeni
Profil
Zdravím, potřebuji pomoct s regularním výrazem pro to aby uměl rozdělit řetězec po číslech, ale část, kde je třeba 0x0 vzal celou:
123x45x67x8x9 -> [1, 2, 3x4, 5x6, 7x8x9]
Nevím jestli jde v reg. výrazech ještě něco jako cyklus: "dokud je kladné tvrzení o následujícím pravdivé tak opakuj pořád tuto závorku", jinak by v případě 1x2x3x4 to dělalo asi problém, zkoušel jsem: return string.split(/[0-9](?=x[0-9])/);, ale to vrátí první prvek prázdný, ten druhý začíná 'x' a pokračuje dokud nenajde další 'x', takže z '1x01233x4' mám ve výsledku [(null?), 'x0123', 'x4'], ale potřebuji z toho udělat [1x0, 1, 2, 3, 3x4].
Jde to s použitím pouze funkce split a regularního výrazu nebo mam obětovat pár bitů a vteřin navíc a dát na to cyklus s pomocnými proměnnými?
Tori
Profil
return string.match(/(?:\dx)+\d|\d(?=\d|$)/g);
edit: vyhodila jsem přebytečné závorky
DarkMeni
Profil
To je ono, díky moc!

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: