Prvních několik elementů z CSV – Regulární výrazy – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prvních několik elementů z CSV – Regulární výrazy – Fórum – Programujte.comPrvních několik elementů z CSV – Regulární výrazy – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
fix0
Stálý člen
20. 10. 2020   #1
-
0
-

Ahoj všem,

RE trošku začínám chápat, ale to s čím chci pomoci vůbec nerozumím, jak by se to dalo zařídit.

Mám text s nějakým delimiterem, jako příklad můžeme uvést CSV následující:

kmk;m_ko;ohj;u g;uzf;zfz;vg h;vhju;uh;

Potřebuji RE, který z toho CSV vezme pouze prvních několik sloupců (zbytek zahodí) např. takto:

kmk;m_ko;ohj;

Nejjednodušší mi přijde například zahodit vše, co je za Ntým středníkem.

Dalo by se to nějak prosím pěkně, ideálně mi to napsat? Budu potřebovat měnit delimiter a počet sloupců zleva, které mají být zachovány či číslo sloupce za kterým má být zbytek zahozen, či tak něco.


Hádám, že pro toho, kdo se v tom orientuje, je to otázka pár vteřin.

Děkuji moc za ochotu.

Nahlásit jako SPAM
IP: 31.30.175.–
Řešení
gna
~ Anonymní uživatel
1891 příspěvků
20. 10. 2020   #2
-
+1
-
Zajímavé
fix +
Vyřešeno Nejlepší odpověď

Počet opakování jde určit pomocí {počet} / {od,do}

(.*?(;|$)){3}
Nahlásit jako SPAM
IP: 213.211.51.–
fix0
Stálý člen
20. 10. 2020   #3
-
0
-

Podle mě to nefunguje, neboť výstupem je něco úplně jiného. Tvůj výraz říká, že to má vzít každý třetí sloupec, nikoliv první tři a zbytek zahoď. Proto mi to výstup ukazuje následující:

ohj;zfz;uh;

Namísto takovéhoto:

kmk;m_ko;ohj;
Nahlásit jako SPAM
IP: 31.30.175.–
fix0
Stálý člen
20. 10. 2020   #4
-
0
-

   

Připojen obrázek.

Připojen obrázek.

Možná jsem se spletl jsem jelen z těch zůzných RE emulátorů z internetu, každý ukazuje něco jiného. Ověřím zítra v praxi. Omlouvám se za zmatek.

Nahlásit jako SPAM
IP: 31.30.175.–
gna
~ Anonymní uživatel
1891 příspěvků
20. 10. 2020   #5
-
0
-

Ono záleží na tom jaké funkci v jakém jazyce to předhodíš. Nejspíš bude potřeba to ještě ukotvit -- na začátek ^ -- a výsledek bude v grupě 0 (všechno co se matchlo, tj. těch N hodnot).

Pak je ještě otázka, co s tím chceš dál dělat, jestli nebude lepší prostě nějaký string.split.

A jestli je to opravdu CSV, tak hodnoty s oddělovačem budou v uvozovkách, a uvozovky v hodnotách budou zdvojené, a bůhví co ještě. To se prostě regexama nedělá.

Nahlásit jako SPAM
IP: 213.211.51.–
fix0
Stálý člen
20. 10. 2020   #6
-
0
-

Tak jsem se na to těšil, že jsem to musel otestovat hned.

Funguje perfektně. Ne není to CSV, a delimiter mám tak obecný, že je vyloučeno, že to nebude dělat. Dobrotu. Žádný split nemám, mám možnost pouze RE.

Děkuji moc.

Nahlásit jako SPAM
IP: 31.30.175.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý