Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: asdqewqoieu 28. 06. 2018, 07:40:12
-
Ahojte,
nasiel som (zrejme) dobru stranku s vysvetlenim regexpov (https://github.com/zeeshanu/learn-regex) a chcel by som ich testovat a naucit sa ich pocas mojho cestovania ked som offline.
Co na to odporucate?
Pouzivam Fedoru.
Vopred dakujem.
-
Jak uvařit guláš bez soustruhu? :o ???
-
Vždycky mne fascinují lidé, kteří si myslí, že k naformátování XML, JSONu nebo třeba otestování regulárního výrazu potřebují nějakou webovou stránku a připojení k internetu – a nejsou schopní používat nástroje, které mají na svém počítači. Takže dobře, že se ptáš, nebude to tvůj případ.
Už v terminálu máš příkaz grep, který filtruje řádky ze vstupu podle regulárního výrazu:
$ echo -e 'ahoj\nnazdar'
ahoj
nazdar
$ echo -e 'ahoj\nnazdar' | grep -E 'h.*'
ahoj
Pro nahrazování textu pak slouží příkaz sed:
$ echo -e 'ahoj\nnazdar' | sed -E 's/ahoj/Dobrý den/g'
Dobrý den
nazdar
Ve výrazu můžeš vyznačit pomocí (závorek) tzv. skupiny a pak se na ně odkazovat v nahrazovaném příkazu pomocí $x nebo \x, kde x je číslo skupiny (0 = celý výraz, 1,2,3… jsou pak obsahy jednotlivých závorek tak, jak jdou po sobě).
Hledat a nahrazovat umí Emacs, Vim, mcedit…
A kromě textového terminálu můžeš použít nějaký editor s GUI – např. Kate, Geany, jEdit… – a jeho funkci najít (a nahradit).
jEdit má navíc hezkou funkci/plugin Highlight – tam si nadefinuješ regulární výrazy a k nim barvy, kterými se mají výskyty v textu podbarvovat. Zvýrazníš si tak třeba všechna TODO, e-maily, IP adresy, datum, URL, klíčová slova atd.
-
Pro začátečníka bych ještě zmínil KRegExpEditor: vytvoříte stavový diagram toho, co se má hledat, a ono to vygeneruje regexp, také to umí rozložit regexp na stavový diagram, takže se dobře hledají chyby.
-
V kazdem linuxu mas perl
perl -e '"zdar kokoti!"=~/(kokoti)/; print "$1\n";'
-
Zde je malý skript pro zkoušení regulárních výrazů:
#!/bin/bash
[[ "$1" = "--help" ]] && echo -e "\n$0 regvyraz [moznosti]\nNapř.: $0 '.*' g\n\nBere řádky ze std. vstupu a na výstupu tiskne zvýrazněný vstup.\n" && exit
sed "s/$(printf %s "$1"|sed "s/\//\\\\\//g")/$(echo -e '\e')[31m&$(echo -e '\e')[0m/$2"
Stačí uložit a povolit spouštění (chmod +x NAZEV_SOUBORU).
Když ho pojmenujete program, spouští se (z aktuální složky) ./program REGVÝRAZ MOŽNOSTI. Potom pište různé vstupy (řádky se vyhodnotí zvlášť), vypisuje zvýrazněný text. (Ukončí se Ctrl-C nebo Ctrl-D.) Je možno použít přesměrování (za příkaz napíšete <NÁZEVSOUBORUSEVSTUPEM), pak pracuje sám.
MOŽNOSTI jsou ty volby za lomítkem, pište třeba g
-
blbečci, tazatel se asi ptá na to, jak "trénovat" výrazy (což je přidaná hodnota těch webových stránek, že jsou něco jako IDE na regexp, ukazují interaktivně kroky,skupiny a syntaxi). Ne na to, jak provedede funkci preg_match v bashi nebo v php.
Tecy aspoň doufám, že tazatel se ptal na nějaký playground, kde si to vyzkouší, pohraje, naučí a né na CLI implementaci.. ta je pro lidi, co už to umí
samozřejmě že na použítí (bez zkoušení, prostě provést match) jsou normální nástroje pgprep a funkce v programovacích jazycích, bez "té gui" omáčky, která ale je dost užitečná při ladění, učení a zkoušení.... Případně na jednorázovou prácičku s výrazem
Je smutné, že linux ani windows takový nástroje nemají offline (nevím o něm, pro windows asi něco bude)...
-
dobrý dotaz, většina odpovědí mimo. Zkuste některý z doplňků do VS Code.
-
třeba https://marketplace.visualstudio.com/items?itemName=le0zh.vscode-regexp-preivew
-
Zde je malý skript pro zkoušení regulárních výrazů:
#!/bin/bash
[[ "$1" = "--help" ]] && echo -e "\n$0 regvyraz [moznosti]\nNapř.: $0 '.*' g\n\nBere řádky ze std. vstupu a na výstupu tiskne zvýrazněný vstup.\n" && exit
sed "s/$(printf %s "$1"|sed "s/\//\\\\\//g")/$(echo -e '\e')[31m&$(echo -e '\e')[0m/$2"
Stačí uložit a povolit spouštění (chmod +x NAZEV_SOUBORU).
Když ho pojmenujete program, spouští se (z aktuální složky) ./program REGVÝRAZ MOŽNOSTI. Potom pište různé vstupy (řádky se vyhodnotí zvlášť), vypisuje zvýrazněný text. (Ukončí se Ctrl-C nebo Ctrl-D.) Je možno použít přesměrování (za příkaz napíšete <NÁZEVSOUBORUSEVSTUPEM), pak pracuje sám.
MOŽNOSTI jsou ty volby za lomítkem, pište třeba g
dělá to stejné co obarvený grep
-
Ahoj, kdysi jsem pouzival Kodos (http://kodos.sourceforge.net/ (http://kodos.sourceforge.net/)). Jednoduche, vcetne integrovaneho helpu a mozna by to stacilo.
Dale jsem nasel, ze existuje desktopova verze jakehosi RegExr (https://regexr.com/ (https://regexr.com/)). Nevim, neznam, mozno vyzkouset.
-
Hmm.
Jak vidno, mame tu novou generaci, ktera se be gui ani nevysere.
-
dělá to stejné co obarvený grep
Jak v grepu udelam to, ze pise i neodpovidajici radky?
-
Man stranky......jo ale ty jsi na systemu kde stoji za houby........
Tak si je z jineho ulozit treba do PDF
-
dělá to stejné co obarvený grep
Jak v grepu udelam to, ze pise i neodpovidajici radky?
alias mygrep="grep -e '$' -e "