Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861

Замена формата ссылок находящихся в html документе с http://test. на <a href='http://test.'>test.</a>

23.01.2021, 17:56. Показов 3141. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать код для следующей задачи:

На вход программы подается произвольный html-файл (запрашивается путь к html файлу), необходимо все ссылки http:// не находящиеся в теге <a> обернуть тегом <a> в качестве описания использовать имя домена до первого символа «/». Например, есть ссылка http://test.bstu.ru/bstu/students
Необходимо заменить на <a href='http://test.bstu.ru/bstu/students'>test.bstu.ru</a>


Java
1
2
3
    public void start() {
...???
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2021, 17:56
Ответы с готовыми решениями:

Nginx перенаправляет на http://site.ru/test.ru или http://test.ru/test.ru
Только, что поставил nginx + php-fpm по этой статье - http://dunmaksim.blogspot.ru/2013/12/nginx-php-fpm.html При попытке зайти на сайт...

Переименовать ссылку с такой http://test-site.ru/manage на http://test-site.ru/script.php?params=manage
помогите переименовать ссылку с такой http://test-site.ru/manage на http://test-site.ru/script.php?params=manage ...

Сколько памяти (в байтах) займет данный массив: class Test { public: int c=0,r=0; double q = 0; }; Test *Mass = new Test
Сколько памяти (в байтах) займет данный массив: class Test { public: int c=0, r=0; double q = 0; }; Test *Mass = new...

23
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
24.01.2021, 23:11  [ТС]
Студворк — интернет-сервис помощи студентам
iSmokeJC, да, спасибо, запускается, но не выполняет то что ей нужно...

Java
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
31
32
33
34
35
36
37
38
package ru.bstu.LR4.lusenkov.LR4;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
 
public class LR4 {
        public void getLinkifiedMyText() throws FileNotFoundException {
                System.out.println("Введите путь к html файлу:");
                Scanner path = new Scanner(System.in);
                String stringPath = path.nextLine();
 
                try (FileWriter writer = new FileWriter(stringPath + "_2.html");
                     Stream<String> lines = Files.lines(Paths.get(stringPath))) {
                        Pattern p = Pattern.compile("(?i)\\b((?:https?://|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:\'\".,<>???“”‘’]))");
                        Matcher matcher = p.matcher("");
                        lines.forEach(x -> {
                                matcher.reset(x);
                                try {
                                        if (matcher.group(1).startsWith("http://")) {
                                                writer.write(matcher.replaceAll("<a href=\"$1\">$1</a>"));
                                        } else {
                                                writer.write(matcher.replaceAll("<a href=\"http://$1\">$1</a>"));
                                        }
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                        });
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
Создается файл "..._2.html" - НО ПУСТОЙ!!!
Миниатюры
Замена формата ссылок находящихся в html документе с http://test. на <a href='http://test.'>test.</a>  
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
24.01.2021, 23:12  [ТС]
iSmokeJC, что-то ему не нравится в 26 строке...или я не правильно сконструировал...

Java
1
writer.write(matcher.replaceAll("<a href=\"$1\">$1</a>"));
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
24.01.2021, 23:19
Цитата Сообщение от xamelione25 Посмотреть сообщение
НО ПУСТОЙ!!!
Ессно. До его заполнения дело не дошло
Тебе трейс пишет - No match found. Проверяй регулярки.
И добавь перед reset() вывод x в консоль - посмотри что с файла приходит
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,861
25.01.2021, 13:43  [ТС]
iSmokeJC,

Java
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
31
32
33
34
35
36
37
38
package ru.bstu.LR4.lusenkov.LR4;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
 
public class LR4 {
        public void getLinkifiedMyText() throws FileNotFoundException {
                System.out.println("Введите путь к html файлу:");
                Scanner path = new Scanner(System.in);
                String stringPath = path.nextLine();
                try (FileWriter writer = new FileWriter(stringPath + "_2.html");
                     Stream<String> lines = Files.lines(Paths.get(stringPath))) {
                        Pattern p = Pattern.compile("^(https?:\\/\\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\\/\\w\\.-]*)*\\/?$");
                        Matcher matcher = p.matcher("");
                        lines.forEach(x -> {
                                System.out.println(x);
                                matcher.reset(x);
                                try {
                                        if (matcher.group(1).startsWith("https://")) {
                                                writer.write(matcher.replaceAll("<a href=\"$1\">$1</a>"));
                                        } else {
                                                writer.write(matcher.replaceAll("<a href=\"http://$1\">$1</a>"));
                                        }
                                } catch (Exception e) {
                                        e.printStackTrace();
                                }
                        });
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}
вопрос проблемы стал понятен - связана с экранированием ссылок двойными слэшами
в чем конкретно ошибка в этих ссылках - в упор не вижу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2021, 13:43

Как перенаправить с test.ru на test.test.ru (на одном компьютере)
Как сделать так чтобы на комп1 при вводе например: google.ru попадал на другой сайт(в данном случае сайт с доменом 3 его уровня:...

Url имеет форму http://local.test/?q=services
Я установил себе апаче, и только через неделю заметил эту проблему. Все мои ссылки генерируются в таком виде: ...

C:\Projects\test\test.cpp|6|error: ISO C++ forbids declaration of 'operator++' with no type [-fpermissive]|
class TUID { public: char Data; TUID (); operator ++ (); };

Как сделать чтобы URL выглядел так: http://test/
В Apache у меня URL сайта отображается так: http://localhost/test/www/ как сделать чтобы было: http://test/ ?

Функция file_exists(test/01.ogg) работает, если папка test находится в корневом каталоге моего сервера.
Столкнулся с интересной проблеммой. Функция file_exists(test/01.ogg) работает, если папка test находится в корневом каталоге моего...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. Сразу отвечу: А в PvP с ним. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru