Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,091

Как сделать парсер?

12.11.2015, 12:03. Показов 685. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Мне надо разбить строку следующей структуры:
"дата, время - имя: текстдата, время - имя: текстдата, время - имя: текст..."
на выходе соответственно должна быть таблица:
дата время имя текст
дата время имя текст
дата время имя текст
...
Пробую разбить строку при помощи регулярок, например:
JavaScript
1
str.split(/(\d{2}:\d{2}, \d{2}.\d{2}.\d{4} - \W*:)/g)
Не знаю, что я делаю не так, но почему-то работает всё криво. Разбивает не всегда правильно. Например, когда поле "текст" состоит из цифр, следующее поле "дата" приклеивается к нему. Помогите разобраться...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2015, 12:03
Ответы с готовыми решениями:

Как сделать парсер?
Помогите сделать парсер числа с сайта http://ru.dota2.com/. Нужно получить число с правой панели, из рамки с текстом:"Unique...

Как Сделать Парсер?
Как Сделать Парсер? Помогите Например Хочу на Яндекс )) Кто поможет тому 7 голос ВК

Как сделать парсер текста?
Подскажите, как сделать парсер текста, например Есть строка !!!asd$$$dfg234ASD erf3 Надо чтобы парсер ее разбирал на asd dfg...

5
 Аватар для Chronya
2 / 2 / 3
Регистрация: 01.06.2013
Сообщений: 87
12.11.2015, 12:24
ну вот этот кусок
текстдата
очевидно трудно преобразуем. Если есть возможность, измени структуру строки (пусть там будет ...текст^дата..), если нет, то придётся тебе, мне кажется, пилить парсер, основанный на информации где сколько символов есть. т.е. 10 символов запиливает дату, пропускает ", ", 8 символов на время, пропускает, записывает все символы до ":" как имя, потом ищет следующую дату, и всё что до неё записывает в текст.
опыт у меня так себе, так что можешь попробовать подождать более продвинутых ответов ^^,
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,091
12.11.2015, 13:16  [ТС]
Цитата Сообщение от Chronya Посмотреть сообщение
этот кусок очевидно трудно преобразуем
Это то понятно, но всё же... Я, просто, впервые столкнулся с регулярными выражениями, поэтому пока что грешу на собственную криворукость... Возможно, я что-то не так понял. Допустим, если мы имеем строку "12345678:90", что должно возвращать выражение "\d{2}:\d{2}"? По-моему "78:90". А по факту у меня получается, что оно возвращает всю строку целиком. Может быть знак двоеточия надо как-то выделить? Я пробовал экранировать его обратным слешем - вообще никаких изменений.
Потом, такое выражение вообще плохо годится для проверки времени, так как времени "78:90", например, не бывает. Правильнее было бы написать так: "[0-24]:[0-59]". Но такое выражение у меня вообще не срабатывает почему-то...
0
Эксперт JSЭксперт HTML/CSS
2436 / 1115 / 312
Регистрация: 23.06.2011
Сообщений: 3,531
13.11.2015, 05:35
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
А по факту у меня получается, что оно возвращает всю строку целиком.
у меня правильно возвращает
JavaScript
1
2
3
4
5
var re, s="12345678:90"
re=/\d{2}:\d{2}/;
s.replace(re, function(a){
alert(a)
})
есть спец раздел
https://www.cyberforum.ru/javascript-regexp/

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Мне надо разбить строку следующей структуры:
"дата, время - имя: текстдата, время - имя: текстдата, время - имя: текст..."
конкретные строки нужны
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,091
15.11.2015, 18:11  [ТС]
Цитата Сообщение от newJS Посмотреть сообщение
у меня правильно возвращает
у меня тоже, это я пример неудачный привёл.

Добавлено через 7 минут
Говорил же, что сам криворукий
Там время когда меньше десяти часов, ноль перед часами не прибавляется. Поэтому, соответственно, конструкция "\d{2}:\d{2}" и не всегда срабатывала. А вот с такой: "\d{1,2}:\d{2}" всё, вроде, работает нормально. Так что проблема решена, осталась только одна загадка: почему вариант "[0-23]:[0-59]" не работает? При чём если написать "[0-23]:\d{2}", то так вроде работает...
0
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
15.11.2015, 19:54
JavaScript
1
/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2015, 19:54
Помогаю со студенческими работами здесь

Как сделать парсер цитат с BASH
Получаю примерно такой текст: как мне отсечь мусор ? В регулярных выражениях я ноль... максимум смог до такого обрезать: Как...

Как сделать парсер адреса картинки?
Здравствуйте. Помогите сделать парсер ,который будет вытаскивать со страницы ссылку на изображение.

Парсер внешних ссылок по страницам сайта на JAVA - как сделать правильно?
Здравствуйте уважаемые Java разработчики. Столкнулся со следующей задачей - Необходимо написать код сервиса. Сервис определяет...

Сделать парсер
Здравствуйте! Решил сделать себе парсер - и несовсем определился на чем его делать - сейчас делаю при помощи функции php ...

Сделать XSL парсер статистики
Нужно сделать парсер статистики Icecast2, я в этом нуб, но откопал код, вроде правильный но не работает... вот сам xsl: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru