Starší komentáře ke článku: Perl-compatible regulární výrazy v PHP - základní konstrukce

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Radek Hulán

Datum vložení: 25.1.2005 0:11:34

Pěkně a srozumitelně napsané základy. Díky :)

Avatar

Autor komentáře: NeNe

Datum vložení: 25.1.2005 16:41:12

Vaše nadšení nesdílím. Např. jsem se nedočetl, že perlovské regulární výrazy jsou uzavřeny do lomítek, takže např. výraz "abc" je špatně a správně má být "/abc/".

Taky nejsou uvedeny PHP funkce pro práci s perl. výrazy (ano, je to jeden pohled do manuálu, ale úplnost článku je silně narušena).

Poslední výtka míří k předdefinovaným třídám. Začátečník by se měl co nejdříve dozvědět, že PERL pracuje na jednobajtových řetězcích, takže např. třídu \w nelze použít při kódování UTF-8 apod.

Námět seriálu je dobrý a chvályhodný, provedení však chybí pečlivost.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 25.1.2005 17:35:58

Myslím, že vaše kritika je zcela lichá. Přece není možno do úvodního článku seriálu nacpat úplně všechno. Jednak by to už nebyl seriál, druhak by tomu vůbec nikdo nerozuměl. Takový postoj vůbec nechápu ;-(

Avatar

Autor komentáře: NeNe

Datum vložení: 25.1.2005 22:56:57

Kritika není lichá, jen se asi neshoduje s Vaší. To je rozdíl.

Uvedení PHP funkcí je snad bez debat - jak jinak si čtenář může výrazy testovat? A když už je chce testovat, zjistí, že ani jeden ze zde uvedeným výrazů nefunguje (chybí uzavření v lomítcích nebo v jiných odpovídajících znacích). Poznámka o UTF-8 je samozřejmě trochu pokročilá, nicméně bez ní je tvrzení, že třída \w odpovídá "slovním" znakům neúplné, přísně vzato nekorektní. Minimálně první dvě věci jsou záležitostí 2 vět a mohly dostat přednost třeba před popisem subvýrazů.

Ale možná máte jiný názor, kritika je vždy subjektivní.

Avatar

Autor komentáře: Miroslav Pecka

Datum vložení: 30.1.2005 16:19:52

ad 1. a 2. výtka:
Jedná se o seriál, nedomnívám se proto, že je chyba, že není vše napsáno v prvním díle.

ad 3. výtka:
Dovolím si tvrdit, že žádný článek (ani série článků) nemůže být všeobsažný, zvláště jedná-li se o seriál určený lidem, kteří jsou v oboru nováčky. Je tedy na autorovi rozhodnout, co do svého díla zahrne, co vynechá.

SERIÁL NEMÁ ANI NEMŮŽE (VZHLEDEM KE SVÉMU ROZSAHU) MÍT AMBICE KONKUROVAT KNIHÁM TYPU "JAK SE STÁT GURU V REGULÁRNÍCH VÝRAZECH" ČI POKRÝT PROBLEMATIKU V PLNÉM ROZSAHU.

Myslím, že užitečnější je vytvořit kompaktní a konzistentní (ikdyž ne všeobjímající) celek.
Při psaní se snažím držet pravidla:
"Nenaťuknout" něco, co nebude vysvětleno, tak aby tomu plně rozumněl čtenár, kterému je článek adresován.

Avatar

Autor komentáře: Lukas Dohnal

Datum vložení: 25.1.2005 17:43:09

- regularni vyraz (RE) muzete uzavrit do libovolneho znaku, ktery neni alfanumericky nebo zpetne lomitko

- aby spravne fungoval RE v PHP v kodovani UTF-8, tak pripisete modifikator 'u', ktery sice neni kompatibilni primo s PERLem, ale clanek je o PHP a v PHP tato moznost je ("/\w/u")

Avatar

Autor komentáře: Leo

Datum vložení: 26.1.2005 12:22:05

Ona je otazka co znamena slovo "odpovida" kdyz napisu, ze regularnimu vyrazu (bez vymezeni napriklad lomitky a bez pouziti konkretni fce) \d{3} "bude odpovídat řetězec tří po sobě následujících číslic desítkové soustavy (0-9). Tedy řetězce 123, 584, 012 - ale již ne 15, protože sekvence číslic musí být tři znaky dlouhá."

Da se s tim uspesne polemizovat, protoze tam chybi zastupny znak pro zacatek a konec retezce - /^\d{3}$/

Toto mi na jinak peknem clanku prijde DOST matouci.

Leo

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 26.1.2005 14:37:48

Chyba není v článku, ale ve Vašem myšlení. Žádná formulace nemůže být úplně přesná a čím "přesnější" bude, tím méně bude srozumitelná a použitelná. Píšu-li seriál, který má uvést začátečníky do problematiky regulárních výrazů, musím postupovat od základního přehledu, od těch nejjednodušších vyjádření, a postupně je zpřesňovat a rozšiřovat, úměrně nárůstu znalostí čtenáře. Na netu existují hromady zpackaných textů o regulárních výrazech, kterým nikdo nerozumí právě proto, že autor nedokázal pochopit tento jednoduchý princip.

Jestliže regulární výrazy znáte a nedokážete se vyrovnat s nutností existence návodů pro neznalé, tak je prostě nečtěte.

Avatar

Autor komentáře: Leo

Datum vložení: 26.1.2005 23:29:42

Nezklamal jste :-) Leo

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 26.1.2005 23:42:43

Nesnáším provokace ;-)

Avatar

Autor komentáře: Leo

Datum vložení: 27.1.2005 0:22:34

Jestli myslite muj prispevek, tak to nebyla provokace, ale vecna. Leo

Avatar

Autor komentáře: jindřich

Datum vložení: 27.1.2005 12:23:52

Leo, jakkoli s panem Málkem taky občas výrazně nesouhlasím, tentokrát jste vedle Vy.
Ten článek není - a rozhodně ani nemá být - psán jako exaktně přesná a tudíž naprosto nepřehledná hromada bezvýhradně úplných definic. V tom sporném případě, který uvádíte, se mluvilo o tříznakovém řetězci a implicitně se rozuměl řetězec v takovém kontextu, v jakém bude použit - nemusí to přece být jen "právě tři znaky", ale bude to fungovat i v případě podřetězce - což jediné nebylo explicitně zmíněno. Pro průměrně inteligentního čtenáře, kterého zajímá podstata věci, by to neměl být problém. A šťoura si koneckonců vždycky něco najde, že? :-)

Avatar

Autor komentáře: Miroslav Pecka

Datum vložení: 27.1.2005 19:41:36

Slovo "odpovidá" znamená, že stroj zpracovávající regulární výraz "sežere" určitou část vstupního řetezce odpovídající určité části regulárního výrazu. \d{3} může být jen částí celého reg. výrazu a této části pak bude odpovídat také část řetězce.

Avatar

Autor komentáře: Lukoko

Datum vložení: 25.1.2005 9:02:12

Moc hezky, srozumitelne zaklady. Asi neumim hledat, ale na ceskym webu sem moc info o PCRE nenasel.
<B>uz se tesim na dalsi dil </B>

Avatar

Autor komentáře: Kluk

Datum vložení: 25.1.2005 12:22:57

neco i o Perl-compatible je na:
<a href='http://interval.cz/__redirect/redirect.asp?what=interval_discussion&url=http://www.kit.vslib.cz/~satrapa/docs/regvyr/' target='_blank'>http://www.kit.vslib.cz/~satrapa/docs/regvyr/</a>

Avatar

Autor komentáře: Roman Pištěk

Datum vložení: 25.1.2005 10:59:47

Autorovi se podařilo ve stručnosti postihnout téměř celou problematiku POSIX regulárních výrazů. Každý pojem doprovází jednoduchý a srozumitelný příklad. Hodnotím 100% :)

Avatar

Autor komentáře: Josef Jedlička

Datum vložení: 25.1.2005 11:06:14

Děkuji autorovi za krásný článek o regulárních výrazech, už dlouho se na ně chystám, a tento článek je přímo lahůdkou :-)

Avatar

Autor komentáře: Jan Mensik

Datum vložení: 25.1.2005 11:58:27

uvital bych spise zdurazneni rozdilu oproti POSIXu, se kterym ma vetsina lidi jiz zkusenost. Aby se to nepletle, doporucuji psat: "Na rozdil od," atd.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 26.1.2005 14:39:40

Většina nejsou všichni. Ti, kteří znají POSIX výrazy, nepotřebují žádný seriál, stačí jim jednoduchá srovnávací tabulka ;-)

Avatar

Autor komentáře: spaze

Datum vložení: 27.1.2005 21:23:46

a to jsou snad vsichni, co ctou interval ne? ;P

Avatar

Autor komentáře: Miroslav Pecka

Datum vložení: 27.1.2005 19:42:56

S tím zda má či nemá "většina" zkušenost s POSIX by se asi dalo s úspěchem polemizovat;-) O srovnávání s POSIXem jsem zauvažoval, ale po zralé úvaze jsem to zavrhl. Jednak by občas předpokládalo, že budu trošku vysvětlovat, jak je to v POSIXu; zadruhé by to znepřehlednilo výklad (a ty co POSIX neznají jen mátlo).

Avatar

Autor komentáře: Floyd

Datum vložení: 27.1.2005 10:29:51

U nás se tomu vždycky říkalo roura nebo trubka ;-)
<a href='http://interval.cz/__redirect/redirect.asp?what=interval_discussion&url=http://en.wikipedia.org/wiki/Vertical_bar' target='_blank'>http://en.wikipedia.org/wiki/Vertical_bar</a>

Avatar

Autor komentáře: Miroslav Pecka

Datum vložení: 27.1.2005 19:48:31

Jasně na "unixáckou" rouru (pipe) jsem v tom výčtu synonym zapomněl...
Ale ořítko je taky pěkné české "programátorské" pojmenování, že;-))

p.s.: teď čekám, že polovina dalších příspěvků se bude už věnovat ryze "|" a ne regexpum:)

Avatar

Autor komentáře: Michal Stankoviansky

Datum vložení: 26.3.2005 1:01:38

V článku: "Regulárnímu výrazu a[bc]d bude odpovídat řetězec abc a acd" Správne: "Regulárnímu výrazu a[bc]d bude odpovídat řetězec abd a acd"

Avatar

Autor komentáře: Miroslav Pecka

Datum vložení: 29.3.2005 19:51:11

Děkuji za upozornění, máte samozřejmě pravdu. Chybku opravím.

Avatar

Autor komentáře: Palmic

Datum vložení: 22.6.2005 10:00:12

Me by z toho taky hrablo ;-)

Avatar

Autor komentáře: peta

Datum vložení: 18.6.2005 9:53:40

bylo by prima, kdyby autor na zacatku uvedl vsechny pouzitelne metaznaky, ne jen nektere. Treba v tom vypisu nema uvedeny _ a - a take | a pozdeji dole je pouziva jakoby nic. Libi se mi zvyrazneni zlutou barvou. Cili asi nejjistejsi zpusob je mimo AZaz09 vsude ansazat lomitka. Treba ja konkretne jsem mimo uvedene znaky jeste hledal @ < > =

Avatar

Autor komentáře: Mark

Datum vložení: 8.1.2007 15:21:32

Chybka: "Přičemž první části bude odpovídat libovolný řetězec začínající textem Veselé **Vánoce** a druhé části"

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 8.1.2007 15:34:10

Děkuji za upozornění ;-)

Zpět na článek | Úvodní stránka Interval.cz