Надо посчитать пробелы и группы пробелов, не попадающих в теги, проще говоря всё вот такое:
> те пробелы, что здесь в тексте, a не в тегах <Составил такое выражение:
preg_match_all( "/(?<=\>)([\s]{1,})(?=\<)/", $row->text, $arraymatch5, PREG_OFFSET_CAPTURE);И оно работает, но почему-то не так какта работает. Тоесть на текст в 50К примерно - получается около 100 пробелов, что не может быть.
Где косяк ? (про ДНК я сам знаю 8-)
>Надо посчитать пробелы и группы пробелов, не попадающих в теги, проще говоря
>всё вот такое:
>> те пробелы, что здесь в тексте, a не в тегах <
>
>Составил такое выражение:
>preg_match_all( "/(?<=\>)([\s]{1,})(?=\<)/", $row->text, $arraymatch5, PREG_OFFSET_CAPTURE);
>
>И оно работает, но почему-то не так какта работает. Тоесть на текст
>в 50К примерно - получается около 100 пробелов, что не может
>быть.
>Где косяк ? (про ДНК я сам знаю 8-)Не совтую решать такие проблемы регулярными выражениями. Рано или поздно вы налетите на теги типа <img alt=">" src=""> и прочую гадость. Строго говоря, грамматика тегов не является регулярной впринципе (она является контекстно-свободной) и потому регулярными выражениями не обрабатывается. Любое решение на основе регулярных выражений будет чуть лучше или чуть хуже, но никак не идеальным. По-правильному, надо парсить HTML-документ чем-нибудь.
>[оверквотинг удален]
>>
>>Составил такое выражение:
>>preg_match_all( "/(?<=\>)([\s]{1,})(?=\<)/", $row->text, $arraymatch5, PREG_OFFSET_CAPTURE);
>>
>>И оно работает, но почему-то не так какта работает. Тоесть на текст
>>в 50К примерно - получается около 100 пробелов, что не может
>>быть.
>>Где косяк ? (про ДНК я сам знаю 8-)
>
>Не совтую решать такие проблемы регулярными выражениями. Рано или поздно вы налетите на теги типа <img alt=">" src=""> и прочую гадость. Строго говоря, грамматика тегов не является регулярной впринципе (она является контекстно-свободной) и потому регулярными выражениями не обрабатывается. Любое решение на основе регулярных выражений будет чуть лучше или чуть хуже, но никак не идеальным. По-правильному, надо парсить HTML-документ чем-нибудь.Это почему же? С тегами регулярки справляются на ура, вопрос в другом, нужно ли использовать мощь регулярных выражений, для таких целей, ведь они работают на порядок медленней по сравнению с простыми строковыми функциями...
>Это почему же? С тегами регулярки справляются на ура, вопрос в другом,
>нужно ли использовать мощь регулярных выражений, для таких целей, ведь они
>работают на порядок медленней по сравнению с простыми строковыми функциями...Попробую перефразировать предыдущий ответ, который вам дали. Сама грамматика html "сложнее", чем можно обработать регулярными выражениями. Да, вы можете написать выражение, которое обработает 95% ситуаций, но когда-то вам таки встретится файл, который содержит странную конструкцию, и ваши скрипты будут выдавать не просто странные, а очень странные результаты, хоть бы до уязвимостей не дошло.
Тем более, вспомните, насколько свободно браузеры относятся к парсингу html: иногда ну ооочень невалидные документы всё же рендерятся, и хуже того, такие документы попадаются на реальных сайтах.