Подскажите пожалуйста, как с помощью функции preg_match_all подсчитать количество знаков «ввод» в тексте, следующий синтаксис не дал результата. preg_match_all("[\\n]",$text,$i)
лично я бы "количество знаков «ввод»" считал бы функцией substr_count() а что именно с preg_match_all не получилось?
это я косяк упорол, фуекция strlen() считает знак "ввода" как элемента, а preg_match_all все правильно считает Вопрос снят
что значит "фуекция strlen() считает знак "ввода" как элемента"? какого элемента? как она его считает?
simpson Считает он точно, просто ошибается на еденицу (думаю не надо объяснять почему) а надо это потому что работает быстрее чем preg_match_all
не надо. согласен. искать регулярным выражением константное значение - вообще глупость. но и твоему способу есть достойный оппонент (о котором уже сказал Чебурген) - substr_count.
я бы не был столь категоричен со столь спорными утверждениями......... И дело здесь не в той микроскопической разнице, о которой я часто говорю и которую многие не понимают, а именно в абсолютных цифрах. Настоятельно рекомендую лишний раз проверить свои выкладки. Подумав над данной конкретной задачей, а не сделалав бездумный вывод из аксиомы "строки быстрее регов".
Вот ты и сам сказал, что это аксиома. Но вот быстрее на сколько? На одну сотую секунды? Возможно я готов подождать эту одну сотую секунды...
Мое имхо по данному вопросу: Чебурген прав. В большинстве случаев, разница между регуляркой и строковыми функциями по скорости неокупаема. Однако, когда речь идет о работе с большими кусками текста, скорость работы регов падает ощутимо. Более чем ощутимо - у меня был парсинг примерно 6 метрового файла с регулярной структурой - дамп данных по соединениям с АТС, происходил раз в сутки. Скорость работы регуляркой ~18 сек. Скорость работы строковыми функциями ~7 сек. Потом, при опытной эксплуатации, стали обрабатыватся все файлы от всех АТС, и чаще - вот тут то и вылезла излишняя нагрузка боком - почти полчаса(!) разницы на каждый проход раз в 6 часов.
PS. А вы подумайте, если бы файл не имел выраженной структуры, и регулярка была бы сложней? Во сколько минут бы это вылилось? Поэтому - каждому случаю - свой инструмент.
Сейчас я говорю немного о другом. Пусть даже файл не в 6 мегабайт, а а 600 килобайт. всё равно, распихать весь этот файл в массив будет дольше, чем пробежать по нему примитивным регом, который ищет, как здесь уже говорилось, константу. Вы зря недооцениваете вылизанность оптимизации регулярных выражений. И зря недооцениваете накладные расходы пхп при работе с массивами. (Ну, и для совсем буквоедов - вы зря сравниваете массив из одиночных символов с массивом полновесных строк)
Чебурген, так и я о чем. в 95% случаев регвыры себя окупают простотой использования. Но для себя нужно знать, что если вопрос скорости встанет - строковые все равно быстрей. // PS. Перенес тему в рег.выры, где ей, имхо, и место..
Апсолютно согласен. При разработке серьезных проектов просто необходимо выбирать скорость, иногда даже в убыток простоте.
Davil, вопрос даже не в серьезности самого проекта, а в требовательности конкретного действия к соотношению обьем/скорость. Рег.выры берегут немало сил, этого у них не отнять. // Флуд почистил, тему закрыл. Ибо .... (ц)