11.12.2015, 01:55
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Mаxmaxmаximus, сенк за идею
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
11.12.2015, 10:36
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Mаxmaxmаximus,
чет как то не очень работает http://jsfiddle.net/789692dq/1/
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
11.12.2015, 12:35
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Mаxmaxmаximus, кстати, если хочешь по веселится присоединяйся, еще пару пунктов
по позиции нужно определить:
- позиция находится внутри атрибута
- внутри тела тэга <tag тут >
- внутри текстовой части тэга <tag> тут </tag>
- или так <tag> <t /> внутри этого </tag>
Потому скину что получилось, если есть интересные идеи то слушаю)
Сейчас делаю это с помощью конечного автомата
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
Последний раз редактировалось cyber, 11.12.2015 в 13:17.
|
|
11.12.2015, 16:02
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Как отличить " \" " от ' " '
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
11.12.2015, 16:09
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
Сообщение от cyber
|
Как отличить " \" " от ' " '
|
Перед парсингом пробегайся по всем экранированным символам и заменяй их на специальную строку заменитель типа $_TMP_$, и сохраняй то что заменяешь в массив, а потом, после обработки, заменяй все вхождения $_TMP_$ на данные из массива в соовтетствующем порядке)
Не знай насколько это правильно но это мне ускоряит парсинг, но я это пометил как оптимизация. НО я все таки язык парсю, и у меня экранирование может какую то логику иметь и.т.п. а у тебя конкретная задача.
|
|
11.12.2015, 16:11
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
Сообщение от cyber
|
кстати, если хочешь по веселится присоединяйся, еще пару пунктов
|
я уже выше написал парсер, парсишь в "токенлист", массив в котором список обьектов {имяТега, закрывающийЛиТег}
парсишь в одну сторону, парсшь в другую, поулчаешь 2 массива.
далее анализируешь эти теги, сколько открывающих было сколько закрывающий и определяешь в каком месте мы сейчас наодимся.
п.с.ч то нужно анализимровать второй массив который ПОСЛЕ нужного символа идет я не уверен)
|
|
11.12.2015, 16:12
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Mаxmaxmаximus, сенк)
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
11.12.2015, 16:13
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Mаxmaxmаximus,
Сообщение от cyber
|
Сейчас делаю это с помощью конечного автомата
|
по таком принципу как работает польшая часть парсеров
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
11.12.2015, 16:13
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
парси теги, учитывая чт они могут быть незакрытыми
парси просто, выискивай скобочки <слово и не обязательно закрывающий тег, или вообще просто треугольные скобочки выискивай
|
|
11.12.2015, 16:15
|
Профессор
|
|
Регистрация: 29.10.2015
Сообщений: 473
|
|
Сообщение от cyber
|
по таком принципу как работает польшая часть парсеров
|
Ну у меня например ThreeBuilder работает по другому, так типа как регулярные выражения рекурсивные, тока ты каждый элемент опсиываешь яваскрипт функцией и он сам парсит внутри себя, и сам решает когда закончился его код и передает управление дальше. в общем годная тема, потом покажу.
можно наследоваться и парсить любые языки и красиво их описывать да и работает молнеиносно.
есть типа токены а есть лексемы, функциями мы описываем лексемы) а дальше используем как будто регулярку пишем. словами не обьяснить пока
|
|
|
|