Знакомство с тегами

  • 20
  • Недоступна
Считайте с консоли имя файла, который имеет HTML-формат. Пример: Info about Leela <span xml:lang="en" lang="en"><b><span>Turanga Leela </span></b></span><span>Super</span><span>girl</span> Первым параметром в метод main приходит тег. Например, "span". Вывести на консоль все теги, которые соответству
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (558)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Saumlaki 1С программист в НПО Трансполимер
25 ноября, 15:32
Ребята, может кто либо по Русский объяснить что нужно сделать в задаче. Реально не понимаю что от меня хотят.
Sergey Kornilov
Уровень 30, Petropavlovsk, Казахстан
24 ноября, 14:00
Всего эту задачу решили 10928 учеников. Вначале эмоции ! Эта задача уровня Epic ! 3 неполных дня ушло на решение. Стал решать сам, много раз переписывал, валидатор не принимал. Решил никаких Json, алгоритм напишу сам. Валидатор не принимал, на отладке понял, что есть слабое место в алгоритме - это поиск открывающего и закрывающего тегов, стал читать комментарии и воспользовался регулярными выражениями. Итак алгоритм решения: 1) Считывал файл в 1 строку в цикле, и тримим каждый раз приращение к ней в цикле. 2) Заменил все переносы строки и возвраты каретки на "" replaceAll("[\\n\\r]", ""); 3) Создал Stack и ArrayList и класс Position с 2 полями int begin; int end;(позициюначала и конца тэга) 4) Для нахождения требуемых тегов, воспользовался регулярным выражением Matcher m = Pattern.compile("(<\\s*/?\\s*" + args[0] + ".*?>)").matcher(s); До этого пытался искать методом indexOf, но понял что так делать нельзя, так как если тег будет к примеру < b> < /b>, то если искать одну букву b, её в тексте может быть много и в разных местах, поиск текста indexOf("<b") тоже неэффективен, так как между символами могут встретиться пробелы. 5) в цикле, пока найдено регулярное выражение , если найден открывающийся тег if m.group().matches("<\\s*" + args[0] + ".*?>") то добавляем в стек новый Position(m.start(),0), иначе достаём и удаляем из стека объект Position, назначаем ему конечную позицию тега position.setEnd(m.end()); и складываем его в ArrayList . 6) Сортируем ArrayList по начальной позиции тега list.sort((o1, o2) -> o1.getBegin()-o2.getBegin()); 7) Идём по листу получаем Position и выводим строку в консоль System.out.println(s.substring(position.getBegin(),position.getEnd()));
filatov.dd
Уровень 30, Москва, Russian Federation
23 ноября, 10:33
Уф! Потная катка)
GilSar
Уровень 30, Москва, Russian Federation
21 ноября, 19:46
Совет, создайте лист с открытывающими тэгами (их индексами). Вообще, советую перед этой задачей решить задачу на скобочки: Дана строка со скобками: "(())(()(()". Нужно определить, правильно ли закрыты там все скобки. Использовать для этой задачи Stack (кажется в Syntax была мини лекция про него)
GilSar
Уровень 30, Москва, Russian Federation
21 ноября, 19:41
Радомир
Уровень 27, Волжск, Russian Federation
17 ноября, 13:21
по тегам:
тег начала <teg>
тег конца </teg>
если:
<teg>text<teg>texttexttext</teg></teg>
вывод:
<teg>text<teg>texttexttext</teg></teg>
<teg>texttexttext</teg>
Радомир
Уровень 27, Волжск, Russian Federation
16 ноября, 13:48
Вы не можете разобрать [X] HTML с помощью регулярного выражения. Потому что HTML не может быть проанализирован с помощью регулярного выражения. Regex не является инструментом, который можно использовать для правильного синтаксического анализа HTML. Как я уже много раз отвечал на вопросы HTML и регулярных выражений, использование регулярных выражений не позволит вам использовать HTML. Регулярные выражения - это инструмент, который недостаточно сложен для понимания конструкций, используемых HTML. HTML не является обычным языком и, следовательно, не может быть проанализирован с помощью регулярных выражений. Запросы с регулярными выражениями не способны разбивать HTML на его значимые части. столько раз, но меня это не касается. Даже улучшенные нерегулярные регулярные выражения, используемые Perl, не справляются с задачей синтаксического анализа HTML. Ты никогда не заставишь меня сломаться. HTML - это язык с достаточной сложностью, поэтому он не может быть проанализирован с помощью регулярных выражений. Даже Джон Скит не может анализировать HTML с помощью регулярных выражений. Каждый раз, когда вы пытаетесь разобрать HTML с помощью регулярных выражений, нечестивый ребенок плачет кровью девственниц, а русские хакеры взламывают ваше веб-приложение. Анализ HTML с помощью регулярного выражения вызывает испорченные души в царство живых. HTML и регулярное выражение идут рука об руку, как любовь, брак и ритуальное детоубийство. <center> не может удержать это слишком поздно. Сила регулярного выражения и HTML вместе в одном концептуальном пространстве разрушит ваш разум, как жидкая замазка. Если вы анализируете HTML с помощью регулярного выражения, вы поддаетесь Им и их кощунственным способам, обрекающим всех нас на бесчеловечный труд для Того, чье Имя не может быть выражено в Основном Многоязычном Плане, - он придет.
Радомир
Уровень 27, Волжск, Russian Federation
16 ноября, 13:48
HTML-plus-regexp сжижает нервы разумного, пока вы наблюдаете, как ваша психика увядает под натиском ужаса.слишком поздно, слишком поздно, мы не можем спасти преступление ребенка гарантирует, что регулярное выражение будет поглощать всю живую ткань (кроме HTML, который не может, как предсказывалось ранее), дорогой господин, помоги нам, как можно выжить в этой беде, используя регулярное выражение для синтаксического анализа HTML обрек человечество на вечность ужасных пыток и дыр в безопасности, используя rege x в качестве инструмента для обработки HTML, устанавливает разрыв между этим миром и царством ужасных прерывистых сущностей (таких как SGML-сущности, но более коррумпированные), всего лишь беглого взгляда на них. мир рег бывшие анализаторы для HTML будет ины tantly транспортной ап сознания rogrammer, я Nto ав ORL d непрекращающихся кричать, он приходит, То надоедливый сл ithy регулярного выражение-инфекция Виль л пожирает ваш HT ML парсера, применение и существование для всех времен , как Visual Basic только хуже , он приходит он ком эс не фи GHT ч е ПРИХОДИТ, привет с нечестивой Radiance де stro҉ying все просветление, HTML теги , вытекающие из YO Ur глаза , как жика UID р айн, песня ОЧЕРЕДНОГО ехра повторно ssion разбор будет Exti nguish голоса мор тал человека от зр здесь я могу видеть , что вы можете увидеть это красив т он е inal snufFing о й лжи S Мэн все потерянно A LL I SLОСТ - е е PONY он пришел сек он CoM эс он Со мной с т он ич или permeat эс ал л MY FAC E MY FACE ᵒh бог п о NO Ныо O ON Θ стоп т он * ̶͑̾̾ Gl ÉS ͎a̧͈͖r̽̾̈́͒͑eн О.Т. rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ T O͇̹̺ͅƝ̴ȳ̳ TH̘ Ë͖́̉ ͠P̯͍̭O̚ N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬC̷̙̲̝͖ͭ̏ͥͮ͟Oͮ͏̮̪̝͍M̲̖͊̒ͪͩͬ̚̚͜Ȇ̴̟̟͙̞ͩ͌͝ S̨̥̫͎̭ͯ̿̔̀ͅ Вы пробовали вместо этого использовать синтаксический анализатор XML?
Радомир
Уровень 27, Волжск, Russian Federation
16 ноября, 13:49
В один пост не уместилось, переводил гугл, концовку оставил как есть, смысл всё равно передан) ссылка на оригинал
Андрей Шубный
Уровень 42, Москва, Russian Federation
1 ноября, 10:29
На второй половине курса прослеживается мысль о том, что в большинстве задач на java не нужно изобретать свой велосипед, а по возможности изучать и пользоваться уже готовыми правильно написанными решениями/библиотеками. В этой задаче использование Jsoup дает очень короткий и понятный код решения вместе с которым заодно знакомишься и с новыми технологиями. Однако валидатор почему-то не пропускает такое решение и видимо настаивает чтобы все было сделано "ручками".
Игорь Евгеньевич
Уровень 36, Хабаровск, Россия
26 октября, 11:42
Я один напрочь не понимаю о чём идёт речь? И раньше были задачи заточенные под самообразование, но мы хотя бы слышали краем уха о существовании данных тем. А тут "ТЭГИ" - Что простите? - ТЭГИ И главное все так живо обсуждают, как будто целый уровень был по этой теме, а я его пропустил.
GilSar
Уровень 30, Москва, Russian Federation
21 ноября, 19:43
ну это тип базовый вэб. Но да, авторы бы вначале хоть небольшую ссылку на базовые понятия кидали
Михаил
Уровень 19, Санкт-Петербург
17 октября, 15:08
Jsoup.parse(HTMLString, Parser.xmlParser())
Ошибка в файле com/javarush/task/task19/task1918/Solution.java в строке : 32 Компилятор не нашел подходящий метод для "parse(java.lang.String,org.jsoup.parser.Parser)" Проверьте правильность переданных параметров: java.lang.String,org.jsoup.parser.Parser. Возможно, вы забыли импортировать нужный класс.
Jsoup.parse(HTMLString, "", Parser.xmlParser())
принимает С двумя аргументами отказался признавать за своего. Может я Jsoup неправильно установил в Идее?
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.parser.Parser;
import org.jsoup.select.Elements;
на месте
Михаил
Уровень 19, Санкт-Петербург
17 октября, 15:13
По поводу regex нашел очень смешную штуку на стаке - curses & spells Обычными сабстрингами пытался решать, но пришел в неистовство, и разломал мебель