Chciałbym się czegoś nauczyć o wyrażeniach regularnych, przed chwilą przeczytałem wątek potreb'a i byłbym wdzięczny jakby mi to ktoś wytłumaczył
<?php $text = '<a name="akt053322"></a> fggfgf <a name="akt053322"></a>'; http://www.php.net/preg_match_all('[<a name="(.+?)"></a>]is', $text, $matches); ?>
1.
znak zapytania wyłączą "chciwość". w przeciwnym razie interpeter mógłby zebrać wszystko do końca. patrz: http://pl2.php.net/manual/en/reference.pcre.pattern.modifiers.php i opis modifiera U (PCRE_UNGREEDY)
2.
[] to delimetery w tym zapytaniu, natomiast "is" to modifiery (patrz link powyżej]
3.
ponieważ "Any character can be used for delimiter as long as it's not alphanumeric or backslash (\)" (manual, pierwszy akapit na http://pl.php.net/pcre). w powyższym wyrażeniu delimiterem są []. pewnie autor chciał uniknąć konieczności wstawiania backslasha przed slashes w </a>. ze slashem jako delimiterem wyglądałoby to tak: '/<a name="(.+?)"><\/a>/is'.
1. Gdzieś czytałem, że delimitery powinny być takie same, ktoś źle napisał czy nawiasy kwadratowe to wyjątek?
2. Czy jeżeli używa się jako delimiterów [ ] to chcąc zdefiniować klasę trzeba użyc \ przed nawiasami?
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)