Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok NapísalOffline : 15.11.2010 15:33

Caute, potreboval by som poradit.
Predstavte si, ze mate subor, ktory obsahuje rozne zhluky znakov, emailove adresy, atd. Ako z tohto suboru vygrepujem tie riadky, ktore obsahuju minimalne 5 znakov, pricom vsetky znaky su z mnoziny: velke pismena, male pismena, cisla, bodka, podrzitko?
Dakujem.


Offline

Čestný člen
Čestný člen
Bash - regularne vyrazy

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 15.11.2010 16:26

Co takto
Kód:
grep -iE '^[a-z0-9._]{5,}$' subor


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 15.11.2010 16:45

bohuzial nie.

Zatial najblizsie tomu co potrebuje bolo
Kód:
grep -i '[a-z0-9._]\{5,\}' subor


problem je v tom, ze vypise aj riadky kde je napr. ? alebo ! a to nechcem.
Ale dakujem. :)


Offline

Čestný člen
Čestný člen
Bash - regularne vyrazy

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 15.11.2010 17:44

Bohuzial nie co? Das mi nejaky priklad, na akom riadku moj regexp pracuje nespravne?
Tvoj regexp ti nefunguje IMHO preto, lebo nepracujes s hranicami, t.j. zaciatok: ^ a koniec: $. Preto ti vyberie napriklad aj riadok "abcde***", pretoze cast abcde odpoveda regexpu a zvysok ho nezaujima.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 15.11.2010 18:52

no vlastne som zistil, ze mas pravdu, tak sa ospravedlnujem.
ten tvoj zapis s prepinacom -E mi vratil, ze -E illegal option a bez neho mi to zas nevratilo vobec nic. a tie hranice je presne to co tomu chybalo. vobec som si to neuvedomil, ale tak ja sa to len teraz ucim...
A fakt ti dakujem, pomohol si mi.

Vlastne by som ta chcel poprosit, ci by si mi este nepomohol aj s druhou castou:
potrebujem vygrepovat riadky s mailovou adresou, ktora sa v prvej casti sklada z alfanumerickych znakov, bodiek, pomlciek, podtrzitok, v druhej casti tiez a za poslednou bodkou mozu byt len 2 az 4 znaky.

mam uz nejaky svoj zapis, ale myslim, ze nie je celkom spravny.


Offline

Čestný člen
Čestný člen
Bash - regularne vyrazy

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 15.11.2010 19:03

Tak ho skus sem hodit, skontrolujeme, najdeme chyby. Vsak to je v podstate to iste, zaciatok mas v mojom prispevku vyssie, potom @, potom opat taky isty zapis pre cast za zavinacom a ukoncis to \.[a-z]{2,4} (mimochodom, na TLD .travel si nemyslel?).
-E ti vratilo illegal option? Eh? Co to je za distro a aka verzia grepu? `which egrep` ti vrati nieco?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 15.11.2010 20:11

no pripajam sa vzdialene, zrejme to bude solaris, kedze ako verziu vypisalo SunOS 5.10
mal by som to vediet vyhladat cez grep.

moj zapis
Kód:
grep -i '[a-z0-9.-_]@[a-z0-9.-_].\{2,4\}' subor


Offline

Čestný člen
Čestný člen
Bash - regularne vyrazy

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 15.11.2010 21:08

Opat ti chyba zapis zaciatku a konca riadku, ^ a $.
Dalej pomlcka ma specialny vyznam v hranatych zatvorkach, zapis [.-_] preto vyberie vsetky znaky od 0x2E po 0x5F (vid ASCII tabulku), to je zamer? V hranatych zatvorkach zapisuj pomlcku (pokial ma skutocne reprezentovat pomlcku) ako \-.
Dalej nemas vyznaceny pocet opakovani (zapisany pomocou + alebo ciselne pomocou {m,n}) pre cast pred zavinacom a za zavinacom. Hranata zatvorka vzdy symbolizuje iba jeden znak - preto tvoj regexp, ak by tam neboli ine chyby, odpovedal a@b.sk, x@y.sk, ale uz nie foo@bar.sk, pretoze nemas urceny ziaden pocet opakovani pre [a-z0-9.\-_].
Dalej bodku nemas escapovanu, samotna bodka v regexpe znamena lubovolny znak. Ak chces, aby regexpu vyhovoval skutocne znak bodky, pouzi \. (neplati pre zapis bodky v hranatych zatvorkach).
Dalej si neuviedol, co sa ma dva- az styrikrat opakovat (preto sa kvantifikator {2,4} uplatni na tu bodku). V TLD by som povolil asi len znaky a-z: [a-z]{2,4}.
http://www.regularnivyrazy.info/ - toto ti pomoze, skus si to prejst.
Inak na vela veci si vo svojom regexpe zabudol - v username moze byt toho omnoho viac, ako tych par znakov, ktore si povolil; domena nesmie zacinat/koncit pomlckou, nesmie obsahovat podtrznik, nesmie obsahovat viac bodiek za sebou ani bodku na zaciatku/konci; mailova adresa moze mat miesto domeny uvedenu IP adresu; xy dalsich veci, ktore nespominam.
Na mailove adresy existuju hotove regexpy, skus pogooglit. Inak nemyslim si, ze v Bashi je potrebne escapovat chlpate zatvorky, ak ich zapisujes do 'apostrofov'.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.06.10
Prihlásený: 20.05.16
Príspevky: 36
Témy: 11
Príspevok Napísal autor témyOffline : 16.11.2010 1:48

netreba sa velmi zamyslat nad tym tvarom mailovej adresy. to je proste zadanie ulohy, navyse subor obsahuje zhluk znakov, mozne a nemozne e-mailove adresy, atd.

myslim, ze v hranatych zatvorkach mozem mat pomlcku aj bez lomitka, aspon mi to tak funguje (alebo si to aspon myslim, ze mi to tak funguje),resp. pomlcka nebude metaznakom, aspon nie v tejto verzi grepu; aj kvantifikatory musim zapisovat vo formate znak\{m,n\}, bez lomitok to nefunguje, mam to tak aj v materialoch.

Tak nakoniec som sa po upravach dopracoval k takemuto zapisu, ktory podla vsetkeho funguje uplne spravne vzhladom na zadanie ulohy
Kód:
grep -i '^[a-z0-9._-]\{1,\}@[a-z0-9._-]\{1,\}\.[a-z]\{2,4\}$' subor


Dakujem, ze si si nasiel cas, naozaj mi to pomohlo. A ta stranka je tiez dobra.


Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy

v Ostatné

0

718

11.02.2006 14:59

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regularne vyrazy

v PHP, ASP

25

1654

14.03.2011 17:30

camo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy

v PHP, ASP

3

524

06.12.2009 14:41

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. regularne vyrazy

v PHP, ASP

3

384

30.01.2009 16:57

mybirthday1403 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. JAVA - regulárne výrazy

v Assembler, C, C++, Pascal, Java

0

767

26.03.2011 11:21

Shwollo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regularne vyrazy v PHP

v PHP, ASP

1

440

21.10.2007 22:50

Codik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy - negácia reťazca

v PHP, ASP

7

908

22.10.2007 20:39

juho Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regularne vyrazy v Perl

v Perl, Python, Ruby, CGI

0

2473

21.10.2007 22:41

quark Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy - všetko okrem výrazu

v PHP, ASP

3

349

10.04.2012 21:44

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy porovnávané s array

v PHP, ASP

2

228

29.12.2012 15:33

Ando Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulárne výrazy - problém - vybrať všetko čo nieje v

v PHP, ASP

2

444

18.10.2007 19:33

Bananslovak Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. conky + fbcmd + bash

v Ostatné

2

433

10.02.2010 20:02

Deafboy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Linux/unix Bash Prikaz pre zoradenie vzostupne etc.

v Operačné systémy Unix a Linux

1

417

03.12.2013 15:35

XOLOO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Regulérne výrazy

v PHP, ASP

8

1079

18.07.2009 16:30

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zase regularne vyrazi -pomoc

v PHP, ASP

1

465

01.10.2007 11:36

mokus Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výrazy a priorita operátorov

v Assembler, C, C++, Pascal, Java

1

766

08.01.2009 17:17

neutronmind Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  
cron

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra