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
Datum vložení: 25.1.2005 0:11:34
Pěkně a srozumitelně napsané základy. Díky :)
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.
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 ;-(
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í.
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.
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")
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
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.
Datum vložení: 26.1.2005 23:29:42
Nezklamal jste :-) Leo
Datum vložení: 26.1.2005 23:42:43
Nesnáším provokace ;-)
Datum vložení: 27.1.2005 0:22:34
Jestli myslite muj prispevek, tak to nebyla provokace, ale vecna. Leo
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? :-)
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.
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>
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>
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% :)
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 :-)
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.
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 ;-)
Datum vložení: 27.1.2005 21:23:46
a to jsou snad vsichni, co ctou interval ne? ;P
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).
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>
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:)
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"
Datum vložení: 29.3.2005 19:51:11
Děkuji za upozornění, máte samozřejmě pravdu. Chybku opravím.
Datum vložení: 22.6.2005 10:00:12
Me by z toho taky hrablo ;-)
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 @ < > =
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"
Datum vložení: 8.1.2007 15:34:10
Děkuji za upozornění ;-)