|
|
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
есть текст Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В самих div может быть абсолютно разный вложенный контент . Задача - вернуть все возможные div блоки с 1,2,3,4,5 и тд вложениями div , только у блоков могут быть id или class , а могут не быть , в примере id для наглядности .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 11:24 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
TREY, в чем трудность? Линейный тривиальный алгоритм, либо я вас плохо понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 15:36 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
SashaMercury, regexpr ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 16:59 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
Эту задачу невозможно решить на регулярных выражениях. В RE нету возможности учитывать количество открывающих-закрывающих скобок. Это уже задача для парсера умеющего разбирать бесконтекстную грамматику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2016, 20:09 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
1. Из мэйнстримных языков мне не известен тот, который не умеет сейчас работать с xml 2. Даже если не умеет, решается набором простых действий вроде таких: - найти все открывающие и закрывающие тэги - рекурсивная функция, которая формирует многоуровневый массив из полученного массива тэгов, проваливаясь глубже (в новосозданный элемент), когда видит открывающий тэг, и поднимаясь на уровень выше, когда видит закрывающий тэг Чистой регуляркой не реализуемо, потому как она линейна, а не рекурсивна. То есть задачу с помощью одних регулярок (без вспомогательных функций) можно решить, но только если множество раз запускать функцию поиска и замены (по сути тот же второй вариант, только более запутанно и сложно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2016, 15:08 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
White OwlЭту задачу невозможно решить на регулярных выражениях. не верю вам.. Програмёр1. Из мэйнстримных языков мне не известен тот, который не умеет сейчас работать с xml хтмл != xml ПрограмёрЧистой регуляркой не реализуемо, потому как она линейна, а не рекурсивна. как раз читаю про рекурсивные регулярки Програмёрможно решить, но только если множество раз запускать функцию поиска и замены (по сути тот же второй вариант, только более запутанно и сложно) это первое что пришло мне в голову , но не могу выбрать тег див в котором нету дивов .. То есть выбирать дивы у которых нету вложения, добавлять их в массив , и удалять из текста , а потом снова искать , добавлять и удалять , пока не будет равно нулю .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2016, 19:56 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
TREYWhite OwlЭту задачу невозможно решить на регулярных выражениях. не верю вам.. Програмёр1. Из мэйнстримных языков мне не известен тот, который не умеет сейчас работать с xml хтмл != xml ПрограмёрЧистой регуляркой не реализуемо, потому как она линейна, а не рекурсивна. как раз читаю про рекурсивные регулярки Програмёрможно решить, но только если множество раз запускать функцию поиска и замены (по сути тот же второй вариант, только более запутанно и сложно) это первое что пришло мне в голову , но не могу выбрать тег див в котором нету дивов .. То есть выбирать дивы у которых нету вложения, добавлять их в массив , и удалять из текста , а потом снова искать , добавлять и удалять , пока не будет равно нулю .. Коллега, HTML = XML... Очень даже равно :) HTML это частный случай XML. И кстати под прасинг именно HTML тоже много чего написано готового. На каком языке пишите? Возможно смогу помочь в поисках нужного готового функционала Насчёт рекурсивных регулярок.... кхм... Теперь мне ещё больше захотелось узнать на чём Вы пишите. Потому как мне неизвестны случаи реализации рекурсивных регулярок "из коробки". Насчёт запуска регулярки рекурсивно - это забивание гвоздей ковшом бульдозера! Вы представляете какие будут расходы у Вас на это дело? В общем, как уже писал, лучше скажите на чём задачу решаете , а я постараюсь помочь с поиском нужных библиотек для работы с DOM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2016, 20:31 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
Програмёр, delphi xe4, там есть инди и другое , я вкурсе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2016, 20:55 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
Програмёр Коллега, HTML = XML... Очень даже равно :) HTML это частный случай XML. Нет XHTML это частный случай XML. HTML это частный случай SGML. Например в HTML можно не закрывать теги (<br>), а в xhtml нельзя - только <br/> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2016, 11:14 |
|
||
|
Пятничная задачка по regexpr
|
|||
|---|---|---|---|
|
#18+
че то мозгов не хватило рекурсивную регулярку написать , по этому решил послушать @Програмёр , сделал через IHtmlElement. Может кому то пригодиться , выводит все div в TStringlist: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2016, 14:36 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1340585]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 337ms |

| 0 / 0 |
