ФорумПрограммированиеPHP для идиотов → Регулярки

Регулярки

  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 28 сентября 2009 г. 6:34, спустя 4 часа 34 минуты 20 секунд



    да я как-то про русский низнал -_- мб изза того что не стыкался в практике именно чтоб руссок грепалось)
    Ну и кто из нас теперь долбаеб?
    - кто кто ? - ты! Слово долбоеб через о пишеться, долбоеб :)
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 28 сентября 2009 г. 7:21, спустя 47 минут 1 секунду




    да я как-то про русский низнал -_- мб изза того что не стыкался в практике именно чтоб руссок грепалось)
    Ну и кто из нас теперь долбаеб?
    - кто кто ? - ты! Слово долбоеб через о пишеться, долбоеб :)
    Женщина, покиньте пожалуйста интернет! Вам здесь не место…
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 28 сентября 2009 г. 10:29, спустя 3 часа 8 минут 9 секунд

    Смеяться можно ?
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 28 сентября 2009 г. 10:31, спустя 1 минуту 49 секунд

    в схватке двух йикадзун XD
    все умрут, а я изумруд
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 28 сентября 2009 г. 12:12, спустя 1 час 41 минуту 56 секунд

    ща всем раздам

    $string[mb_strpos($string, '*')] = $my_char; 

    krasun, это твой плюс в карме, реальна начал думать.

    /[\*]{1}/i


    перевожу на русский язык
    в последовательности символов из одного символа (*) взять один символ без учета регистра -> /\*/


    можно и так, но вот только по моему регекспы лучше …
    это по-твоему, а по-моему что быстрее - то лучше :)

    и дуд прав

    /^[a-zA-Zа-яА-Я0-9]+$/

    она то пахать будет, не смотря на то что кто то не знает про модификатор i а ктото про то что можно использовать русские буквы. только дело в том что в "а-я" не входит "ё"

    так что Райдер-ск тоже идет в школу

    Я никому, ничего не собираюсь доказывать, это моя точка зрения, вот и все!

    я тебе уже говорил что все что тут говорят знающие люди это только отчасти правда. потому что та же задача в другой ситуации может решатся совершенно иначе. и строить свою точку зрения на том что кто то что то сказал.

    на тебе пример есть строка в ней надо посчитать количество пробелов
    есть два варианта развития событий
    первый - строка короткая и из нее можно удалить все непробельные символы и посмотреть длину
    второй - строка длиной 2метра при этом троя регуляра начинает дыметь, то есть надо пройти строку по символьно сравнивая каждый символ с пробелом.

    Женщина, покиньте пожалуйста интернет!

    лопата!
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 28 сентября 2009 г. 12:44, спустя 31 минуту 19 секунд

    Вот он метод дуда в реализации Мавре ( реально работает быстрее ) ( 20 сек. рекорд )
    <?php
    $str = "**********";
    while(($x = strpos($str, '*')) !== FALSE){
       $str = substr_replace($str, md5($str) . PHP_EOL, $x, 1);
    }    
    ?>
    вот мой, медленее но с регуляркой ( 29 сек. рекорд )
    <?php
    $str = "**********";
    $finded_count = substr_count($str, '*');
    for( $i = 1; $i <= $finded_count; $i++){
    $str = preg_replace('/[\*]{1}/i', md5($str) . PHP_EOL, $str, 1);
    }
    ?>
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 сентября 2009 г. 12:56, спустя 12 минут 22 секунды

    Dr.TRO, в полтора раза хули =))

    только пример конечно адски выдуманный)
    Сапожник без сапог
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 28 сентября 2009 г. 12:57, спустя 38 секунд

    ты о 10к звездочек ? :D
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 сентября 2009 г. 12:58, спустя 44 секунды


    ты о 10к звездочек ? :D
    да, тут до кучи *for* добавляет свою тормознутость на 10к операций …
    Сапожник без сапог
  • Dr.TRO

    Сообщения: 254 Репутация: N Группа: Адекваты

    Spritz 28 сентября 2009 г. 12:59, спустя 1 минуту 23 секунды

    хехе)
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 28 сентября 2009 г. 13:04, спустя 5 минут 17 секунд



    ты о 10к звездочек ? :D
    да, тут до кучи *for* добавляет свою тормознутость на 10к операций …
    ну пока пхп не поддерживает модификатор g остается только цикл
  • rider-sx

    Сообщения: 2706 Репутация: N Группа: Адекваты

    Spritz 28 сентября 2009 г. 15:48, спустя 2 часа 43 минуты 19 секунд

    на тебе пример есть строка в ней надо посчитать количество пробелов
    есть два варианта развития событий
    первый - строка короткая и из нее можно удалить все непробельные символы и посмотреть длину
    второй - строка длиной 2метра при этом троя регуляра начинает дыметь, то есть надо пройти строку по символьно сравнивая

    Я бы сделал так:

    $str = "hbubhbs usnbubg bb sbry bygbsu bgubu beurgu ub ub uberub gubeur gu r";

    $array = explode(' ', $str);

    echo count($array);

    =))
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 28 сентября 2009 г. 16:24, спустя 36 минут 18 секунд

    райдер, например строка 'text text' , покажет что 2
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 28 сентября 2009 г. 17:30, спустя 1 час 6 минут 22 секунды

    rider-sx, не считая замечания Троя, которое в принципе логично хочу обратить твое внимание на то что при таком подходе ты будешь держать в памяти строку 2M + массив строк, еще 2M итого 4M.
    при этом ты по скорости можешь выиграть у регулярки но все равно проиграешь цыклу на 2M
    хочешь бенчмарк можешь сделать
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 28 сентября 2009 г. 17:39, спустя 8 минут 42 секунды


    rider-sx, не считая замечания Троя, которое в принципе логично хочу обратить твое внимание на то что при таком подходе ты будешь держать в памяти строку 2M + массив строк, еще 2M итого 4M.
    при этом ты по скорости можешь выиграть у регулярки но все равно проиграешь цыклу на 2M
    хочешь бенчмарк можешь сделать
    реально метров 20 потеряет, пхп пиздец уебищно хранит массивы в памяти
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!