Конференция "Прочее" » Регулярное выражение
 
  • No_Dead © (22.08.08 22:15) [0]
    вот решил убрать белое рятно в знаниях по сабжу.
    текст из книги:
    <?php
    $s =  'Прекрасный день и красота озера';
    preg_match_all  ('/крас[^ ] + /',   $s,   $matches);
    var_dump   ($matches)
    ?>
    Если выполнить этот сценарий, получается такой результат:
    array(1)   {
    [0]=> array(2) {
          [0]=> string(9)   «Прекрасный»
          [1]=>  string(6)   «красота»
     }

    }



    у меня получается
    array(1) {
     [0]=>
     array(2) {
       [0]=>
       string(8) «красный »
       [1]=>
       string(8) «красота »
     }

    }



    книгу в топку?
  • easy © (22.08.08 22:27) [1]

    > Если выполнить этот сценарий,

    у меня получается
    array(1) { [0]=>  array(0) { } }
  • No_Dead © (22.08.08 22:31) [2]
    > [1] easy ©   (22.08.08 22:27)

    хм... вот так финты%>
  • easy © (22.08.08 22:34) [3]
    как из
    > '/крас[^ ] + /'
    может выйти Прекрасный?
    у тебя в книге знаки стёрлись
  • No_Dead © (22.08.08 22:37) [4]
    > [3] easy ©   (22.08.08 22:34)

    но согласись и

    > array(1) { [0]=>  array(0) { } }

    получиться не может.
  • No_Dead © (22.08.08 22:38) [5]
    + к [5]
    P.S. Джон Коггзолл PHP 5. Полное руководство /ИД Вильямс: Диалектика, 2006 г./
    стр. 95
  • McSimm © (22.08.08 22:39) [6]

    > easy ©   (22.08.08 22:27) [1]
    > у меня получается
    > array(1) { [0]=>  array(0) { } }


    Наверное из-за пробелов возле плюса - не должно быть их там по логике
  • Zeqfreed © (22.08.08 22:59) [7]
    Смотрим в оригинал книги (Print ISBN: 0-672-32511-X), и видим вполне логичную картину:

    Another function of the PCRE family is preg_match_all, which has the same syntax as preg_match(), but searches a string for all the occurrences of a regular expression, rather than for a specific one. Here's an example:
    <?php

    $s = 'A beautiful day and a beauty of a lake';

    preg_match_all ('/beaut[^ ]+/', $s, $matches);

    var_dump ($matches)

    ?>

    If you execute this script, it will output the following:
    array(1) {
     [0]=>
     array(2) {
       [0]=>
       string(9) "beautiful"
       [1]=>
       string(6) "beauty"
     }
    }

    Пинать переводчика, видимо.
  • McSimm © (22.08.08 23:00) [8]
    LOL
  • Zeqfreed © (22.08.08 23:02) [9]
    Ну да. Вот что получается, если переводить строковые литералы в программистских книгах, да еще и не разбираясь в обсуждаемом вопросе.
  • easy © (22.08.08 23:02) [10]
    этва квамаранго %/
  • McSimm © (22.08.08 23:12) [11]
    не, это нечто... :))

    как тонко переведено 'beaut' в регулярке :)

    А пробелы возле плюса небось уже корректор поставил :)
  • No_Dead © (22.08.08 23:25) [12]
    > [7] Zeqfreed ©   (22.08.08 22:59)

    спасиб:) аж настроение улучшилось)
  • Prohodil Mimo © (22.08.08 23:33) [13]
    мы с женой тоже посмеялись :о)

    она у меня и переводчик и программист, так что таких подлостей не совершает при переводах :о)
  • palva © (22.08.08 23:44) [14]
    Вообще у книги должен быть научный редактор. Наверно, сэкономили.
  • antonn © (22.08.08 23:46) [15]
    сохранил страничку, это нечто :)
  • palva © (22.08.08 23:51) [16]
    Подобных случаев полно. Обычно в листингах переводят комментарии, но часто переводчики на этом не останавливаются. Если осмысленный идентификатор из программы встречается в обычном тексте, то его тоже часто переводят. Иногда думаешь, что надежнее читать оригинал. Его и скачать можно на пару лет раньше перевода.
  • Mr.M.I.T. (23.08.08 00:07) [17]
    Удалено модератором
    Примечание: без мата пож.
 
Конференция "Прочее" » Регулярное выражение
Есть новые Нет новых   [134442   +11][b:0][p:0.001]