|
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 19
|
|
Получить значения элементов в регулярном выражении07.06.2006, 14:25. Показов 6966. Ответов 39
Метки нет (Все метки)
Уже несколько дней бьюсь над такой вот незамысловатой задачкой:
Имеется строка: <tags></tags><img[пробелы или др. атрибуты]src="dir1/dir2/pic.gif"[пробелы или др. атрибуты]width="500"[пусто,пробелы или др. атрибуты]/><tags></tags> <tags></tags> - любые другие теги. Атрибут width может стоять до атрибута src. Требуется получить значения атрибутов width и src тега img. Уже повсякому крутил preg_match_all а что нужно не получается (ПоможЫте плз, может кто знает как или делал уже.. Заранее thnks.
0
|
|
| 07.06.2006, 14:25 | |
|
Ответы с готовыми решениями:
39
Ошибка в регулярном выражении Ошибка в регулярном выражении
|
|
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 148
|
||||||
| 09.06.2006, 15:26 | ||||||
|
Блин форум теги хавает
0
|
||||||
|
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 148
|
|
| 09.06.2006, 15:32 | |
|
Блин форум теги хавает
bazile, подкажи как экронизировать код чтобы форум не проглатывал теги?
0
|
|
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
||
| 09.06.2006, 15:40 | ||
Не знаю. После переноса сайта на новый хостинг начались проблемы. Админ сейчас ими занимается.
0
|
||
|
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 19
|
|
| 09.06.2006, 17:21 [ТС] | |
|
Bazile, Thnks юзаю её, вполне успешно справляется
0
|
|
|
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 19
|
|
| 09.06.2006, 17:39 [ТС] | |
|
<STRONG>pehser</STRONG>, сенкс поэксперементирую.
а я думаю что за регулярка странная без условий поиска, оказывается форум шалит </DIV>
0
|
|
|
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 148
|
||
| 09.06.2006, 19:31 | ||
0
|
||
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 10.06.2006, 00:56 | |
|
Basile,
A otkuda vi znaete, chto u vas strokovie funkcii rabotayut bistree RegExp ili dazhe DOM? Vi sravnivali vashu funkcyu s nimi? Esli da, to naskol'ko ona bistree etix bibliotek? Ya imeyu vvidu run-time. Menya ne bespokoit razmer skompilirovannogo fajla i compilyacionnoe vremya. Za poslednie 10 let v moej praktike eto ne bilo problemoj. Spasibo VladConn
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
||||||
| 10.06.2006, 02:02 | ||||||
|
Basile,
Eto primer iz VB.NET. Obratite vnimanie na yasnost' i prostotu koda pri ispol'zovanii DOM. Skorost' fantastichna. Ya proboval na 1000 linij, prakticheski mgnovenno. I nikakoj vozni so strokovimi funkciyami.
0
|
||||||
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
||||||||||||||||
| 13.06.2006, 15:58 | ||||||||||||||||
|
2 VladConn
И регулярные выражения и DOM модель для работы требуют выполнения дополнительных действий "за кулисами". Регулярные выражения требуется сначала откомпилировать и подготовить движок к работе. Для работы DOM сначала надо создать полное представление документа в памяти, что требует времени и ресурсов. Разве это не очевидно? Вот к примеру, что написано в справке по функции split: "If you don't require the power of regular expressions, it is faster to use explode(), which doesn't incur the overhead of the regular expression engine." (выделение мое). Что касается конкретных результатов, то я попробовал сравнить скорость работы со строками и регулярными выражениями в PHP. Поставил задачу - выбрать все значения атрибута id из входного xml файла. Размер файла 931 Кб. Пробовались следующие варианты: 1) strpos/substr
Результаты: 1) strpos/substr - 1.87 секунд. Увы, оказалось что он самый медленный. 2) explode/substr/strpos - 0.23 секунды. Самый быстрый. 3) preg_match_all - 0.4 секунды. Гораздо быстрее варианта 1), но медленнее варианта 2), что и требовалось доказать. Далее я решил сравнить скорость работы со строками и через DOM в .NET 2.0. Забегая вперед скажу, что DOM работает медленнее чем строки, но не настолько чтобы это стало серьезной проблемой. Возможно стоит также сравнивать требования по памяти во время исполнения. В аттачментах два файла с методами сравнения. Результаты: Прамая работа со строками работает в среднем 0.08 секунды, DOM - 0.15 секунд. То есть примерно в два раза медленнее. Вопросы?
0
|
||||||||||||||||
|
|
|
| 13.06.2006, 17:52 | |
|
есть такая регулярка вытаскавает из из штмл все линки
preg_match_all("/[ ](?:src|background|href|url)[ ]*=[ '" ]*([^ "'> ]+)[^>]*>/i", $buf, $linc); может подскажеш вариант кторый будет более быстро выполнять данную задачку? |
|
|
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 148
|
|
| 13.06.2006, 19:09 | |
|
ну вариант 2 это не плохо кода регистр все время один ное если разный то работать он уже не будет..
0
|
|
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
||
| 13.06.2006, 19:12 | ||
0
|
||
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
||
| 13.06.2006, 19:14 | ||
0
|
||
|
0 / 0 / 0
Регистрация: 20.02.2011
Сообщений: 148
|
|
| 13.06.2006, 19:28 | |
|
всяких мастеров хватает есть котрые могут написать и большими или с большой, а как извесно что правельный алгоритм должен быть универсальный. По этому я остаюсь пока при мнении что для решения подобных задачь регуляка подходит лучьше.
Да и еше ты говориш гостю что задачька простая? Я например не вижу как решить его вариает более быстрым вариантом, так что если так просто может продеманстрируеш?
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 13.06.2006, 19:37 | |
|
Privet, basile.
Spasibo za takoe osnovatel'noe izuchenie voprosa. Ya na samom dele i ne rasschityval na takoe. No eto lishnij raz podcherkivaet (na moj skromnij vzglyad) neobxodimost' ispol'zovaniya DOM pri rabote s XML. Raznica v skorosti 2 raza v vashem primere, konechno ochutima - esli sidet' s morskim xronometrom, ved' bez nego ona i ne pochuvstvuetsya. No yasnost' i kratkos' koda s DOM - nesravnenna. A poslednee - kak pravilo, i est' samoe glavnoe, po krajnej mere, soglasno moemu opitu. Glavnoe - bistro ponyat' kod dlya ego potencial'noj podderzhki, bistro ego sdelat' i minimizorovat' chislo vozmozhnix oshibok, t.k. chem prosche kod, tem men'she bagov. Esche raz spasibo. Lishnij raz ubedili menya v ispol'zovanii standartnix specializirovannix klassov. Tem bolee, gde garantiya, chto budet bistree so strokovimi funkciyami? Poroj ved' i net, kak v punkte 1. VladConn
0
|
|
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
|||
| 13.06.2006, 19:42 | |||
. Просто не обязан всем подряд помогать, вот и все. Что ему (гостю) мешает попробовать разные регулярные выражения или написать алгоритм с использованием строковых функций? По моему, разве что лень.
0
|
|||
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
|
| 13.06.2006, 19:53 | |
|
2 VladConn
Моей единственной целью было показать, что есть ситуации, когда более простые, но длинные методы обгоняют по скорости, более сложные, правда теряя по пути читабельность. Я не хотел сказать, что надо забыть, про регулярные выражения и DOM и работать как в "старые добрые времена". Совсем нет! Я полностью, согласен, что ясность кода очень важная вещь, особенно, при коллективной работе над проектом. Не зря есть точка зрения, что от программиста пишущего непонятный для его коллег код, лучше избавляться. В случае с DOM я, честно говоря, рассчитывал на большую разницу в скорости работы - не два раза, а один или несколько порядков. Можно только сказать спасибо программистам Microsoft написавшим такой эффективный код. В .NET 2.0 они, среди всего прочего, работу с XML сильно оптимизировали.
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 13.06.2006, 23:03 | |
|
Privet, Basile,
Chto DOM, chto strokovie funkcii - vse oni legche, chem saprogrammirovat' garazhnie dveri u sebya DOMa: vchera ves vecher ubil, lazaya po garazhnomu potolku pod zvuk prigauischix dverej. :0) VladConn
0
|
|
|
0 / 0 / 0
Регистрация: 23.06.2011
Сообщений: 19
|
|
| 14.06.2006, 11:15 [ТС] | |
|
В моём случае недостатком DOM было то что на имеющемся хостинге с 4пхп он не слинкован..
0
|
|
|
86 / 62 / 69
Регистрация: 15.03.2007
Сообщений: 6,903
|
||
| 14.06.2006, 13:29 | ||
))
0
|
||
| 14.06.2006, 13:29 | |
|
Помогаю со студенческими работами здесь
40
Парсинг в регулярном выражении Ошибка в регулярном выражении Ошибка в регулярном выражении
Проверка поля с паролем на регулярном выражении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика
Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
|
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации:
В классе Работник добавить:
накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни
коэффициентПрезентеизма — снижает продуктивность. . .
|
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день.
Для работы необходим браузер,. . .
|
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности
Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано.
. . .
|
|
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
|
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива
Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
|
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так?
Да, всё верно. Я — искусственный интеллект.
Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
|
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает.
В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше.
Перед запуском проверяем. . .
|