| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 23.06.10 Prihlásený: 20.05.16 Príspevky: 36 Témy: 11 | Napísal karco: 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.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 15.11.2010 16:26 | |
|
Co takto Kód: grep -iE '^[a-z0-9._]{5,}$' subor
|
|
Registrovaný: 23.06.10 Prihlásený: 20.05.16 Príspevky: 36 Témy: 11 | Napísal autor témy karco: 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.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 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.
|
|
Registrovaný: 23.06.10 Prihlásený: 20.05.16 Príspevky: 36 Témy: 11 | Napísal autor témy karco: 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.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 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?
|
|
Registrovaný: 23.06.10 Prihlásený: 20.05.16 Príspevky: 36 Témy: 11 | Napísal autor témy karco: 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
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 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'.
|
|
Registrovaný: 23.06.10 Prihlásený: 20.05.16 Príspevky: 36 Témy: 11 | Napísal autor témy karco: 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.
|
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Regulárne výrazy v Ostatné | 0 | 718 | 11.02.2006 14:59 JanoF | | Regularne vyrazy v PHP, ASP | 25 | 1654 | 14.03.2011 17:30 camo | | Regulárne výrazy v PHP, ASP | 3 | 524 | 06.12.2009 14:41 Ďuri | | regularne vyrazy v PHP, ASP | 3 | 384 | 30.01.2009 16:57 mybirthday1403 | | JAVA - regulárne výrazy v Assembler, C, C++, Pascal, Java | 0 | 767 | 26.03.2011 11:21 Shwollo | | Regularne vyrazy v PHP v PHP, ASP | 1 | 440 | 21.10.2007 22:50 Codik | | Regulárne výrazy - negácia reťazca v PHP, ASP | 7 | 908 | 22.10.2007 20:39 juho | | Regularne vyrazy v Perl v Perl, Python, Ruby, CGI | 0 | 2473 | 21.10.2007 22:41 quark | | Regulárne výrazy - všetko okrem výrazu v PHP, ASP | 3 | 349 | 10.04.2012 21:44 1daemon1 | | Regulárne výrazy porovnávané s array v PHP, ASP | 2 | 228 | 29.12.2012 15:33 Ando | | Regulárne výrazy - problém - vybrať všetko čo nieje v v PHP, ASP | 2 | 444 | 18.10.2007 19:33 Bananslovak | | conky + fbcmd + bash v Ostatné | 2 | 433 | 10.02.2010 20:02 Deafboy | | Linux/unix Bash Prikaz pre zoradenie vzostupne etc. v Operačné systémy Unix a Linux | 1 | 417 | 03.12.2013 15:35 XOLOO | | Regulérne výrazy v PHP, ASP | 8 | 1079 | 18.07.2009 16:30 Ďuri | | zase regularne vyrazi -pomoc v PHP, ASP | 1 | 465 | 01.10.2007 11:36 mokus | | Výrazy a priorita operátorov v Assembler, C, C++, Pascal, Java | 1 | 766 | 08.01.2009 17:17 neutronmind |
| 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
|
|