Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 55

Регулярное выражение, чтобы удалялось слово дубликат с дефисом

05.04.2023, 15:29. Показов 597. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста составить регулярное выражение, чтоб удалялся не только дубликат который прописан у меня в регулярном выражении, но еще и слово дубликат с дефисом (Например: что-то, супер-бизнес-план)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void string6(String str) {
        Pattern p = Pattern.compile("(?i)(\\b\\w+\\b)(.*?) \\b\\1\\b", Pattern.UNICODE_CHARACTER_CLASS);
        Matcher m = p.matcher(str);
        System.out.print("First string: " + str);
        while (m.find()) {
            str = m.replaceAll("$1$2");
            m = p.matcher(str);
        }
        System.out.println();
        System.out.println("String without dublicates: " + " " + str);
        String str1 = str.replaceAll("\\s*,\\s*", " ");
        System.out.println("String without ',': " + str1);
    }
Java
1
2
3
4
Zad num5 = new Zad();
        num5.string6("Клара взяла кораллы, которые были куплены для него, а не предназначены кораллы для нее");
        num5.string6("что-то стабильно, а что-то нет, что и требовалось доказать");
        num5.string6("супер-бизнес-план накрылся и пришлось создать новый супер-бизнес-план, который поможет сделать супер-бизнес");
Вывод:

First string: Клара взяла кораллы, которые были куплены для него, а не предназначены кораллы для нее
String without dublicates: Клара взяла кораллы, которые были куплены для него, а не предназначены нее
String without ',': Клара взяла кораллы которые были куплены для него а не предназначены нее
First string: что-то стабильно, а что-то нет, что и требовалось доказать
String without dublicates: что-то стабильно, а-то нет, и требовалось доказать
String without ',': что-то стабильно а-то нет и требовалось доказать
First string: супер-бизнес-план накрылся и пришлось создать новый супер-бизнес-план, который поможет сделать супер-бизнес
String without dublicates: супер-бизнес-план накрылся и пришлось создать новый-бизнес-план, который поможет сделать-бизнес
String without ',': супер-бизнес-план накрылся и пришлось создать новый-бизнес-план который поможет сделать-бизнес
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2023, 15:29
Ответы с готовыми решениями:

Регулярное выражение не пропускает слово )
Добрый день Дорогие коллеги, помогите пожалуйста составить регулярное выражение. Требуется чтобы регулярка пропускала любые...

Найти слово заданной длины через регулярное выражение
Добрый вечер, помогите, пожалуйста с заданием. Нужно с помощью регулярного выражения найти слова с заданной длиной. Длина задается с...

Регулярное выражение, которое бы искало в тексте слово определенной длинны
Мне необходимо построить регулярное выражение, которое бы искало в тексте слово определенной длинны, при условии, что длинна задается в...

4
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.04.2023, 15:58
"(?i)(\\b\\w+(?:-\\w+)*\\b)(.*?) \\b\\1\\b"
0
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 55
05.04.2023, 20:15  [ТС]
Почему-то слова "что" и "супер-бизнес" тоже удалил Они не дублировались в этих предложениях.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void string6(String str) {
        Pattern p = Pattern.compile("(?i)(\\b\\w+(?:-\\w+)*\\b)(.*?) \\b\\1\\b", Pattern.UNICODE_CHARACTER_CLASS);
        Matcher m = p.matcher(str);
        System.out.print("First string: " + str);
        while (m.find()) {
            str = m.replaceAll("$1$2");
            m = p.matcher(str);
        }
        System.out.println();
        System.out.println("String without dublicates: " + " " + str);
        String str1 = str.replaceAll("\\s*,\\s*", " ");
        System.out.println("String without ',': " + str1);
    }
Java
1
2
num5.string6("что-то стабильно, а что-то нет, что и требовалось доказать");
        num5.string6("супер-бизнес-план накрылся и пришлось создать новый супер-бизнес-план, который поможет сделать супер-бизнес");
First string: что-то стабильно, а что-то нет, что и требовалось доказать
String without dublicates: что-то стабильно, а нет, и требовалось доказать
String without ',': что-то стабильно а нет и требовалось доказать
First string: супер-бизнес-план накрылся и пришлось создать новый супер-бизнес-план, который поможет сделать супер-бизнес
String without dublicates: супер-бизнес-план накрылся и пришлось создать новый, который поможет сделать
String without ',': супер-бизнес-план накрылся и пришлось создать новый который поможет сделать

Добавлено через 11 минут
Цитата Сообщение от iSmokeJC Посмотреть сообщение
"(?i)(\\b\\w+(?:-\\w+)*\\b)(.*?) \\b\\1\\b"
Почему-то слова "что" и "супер-бизнес" тоже удалил Они не дублировались в этих предложениях.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void string6(String str) {
        Pattern p = Pattern.compile("(?i)(\\b\\w+(?:-\\w+)*\\b)(.*?) \\b\\1\\b", Pattern.UNICODE_CHARACTER_CLASS);
        Matcher m = p.matcher(str);
        System.out.print("First string: " + str);
        while (m.find()) {
            str = m.replaceAll("$1$2");
            m = p.matcher(str);
        }
        System.out.println();
        System.out.println("String without dublicates: " + " " + str);
        String str1 = str.replaceAll("\\s*,\\s*", " ");
        System.out.println("String without ',': " + str1);
    }
Java
1
2
num5.string6("что-то стабильно, а что-то нет, что и требовалось доказать");
        num5.string6("супер-бизнес-план накрылся и пришлось создать новый супер-бизнес-план, который поможет сделать супер-бизнес");
First string: что-то стабильно, а что-то нет, что и требовалось доказать
String without dublicates: что-то стабильно, а нет, и требовалось доказать
String without ',': что-то стабильно а нет и требовалось доказать
First string: супер-бизнес-план накрылся и пришлось создать новый супер-бизнес-план, который поможет сделать супер-бизнес
String without dublicates: супер-бизнес-план накрылся и пришлось создать новый, который поможет сделать
String without ',': супер-бизнес-план накрылся и пришлось создать новый который поможет сделать
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.04.2023, 20:31
Лучший ответ Сообщение было отмечено Diana528 как решение

Решение

Java
1
2
3
4
5
6
        Pattern p = Pattern.compile("(?i)\\b(\\w+(?:-\\w+)*)(.*?)\\b\\1\\b", Pattern.UNICODE_CHARACTER_CLASS);
        Matcher m = p.matcher(str);
        System.out.print("First string: " + str);
        while (m.find()) {
            str = m.replaceAll("$2");
        }
1
0 / 0 / 0
Регистрация: 26.03.2023
Сообщений: 55
11.04.2023, 08:57  [ТС]
Добрый день! К сожалению ментор отклонил данное решение, так как удалились даже исходные слова
А нужно чтобы остались
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public void string6(String str) {
        Pattern p = Pattern.compile("(?i)\\b(\\w+(?:-\\w+)*)(.*?)\\b\\1\\b", Pattern.UNICODE_CHARACTER_CLASS);
        Matcher m = p.matcher(str);
        System.out.print("First string: " + str);
        while (m.find()) {
            str = m.replaceAll("$2");
            m = p.matcher(str);
        }
        System.out.println();
        System.out.println("String without dublicates: " + " " + str);
        String str1 = str.replaceAll("\\s*,\\s*", " ");
        System.out.println("String without ',': " + str1);
    }
Вывод:
First string: диана кеша хорошая, диана плохая, кеша хорошая, кеша, кешка
String without dublicates: кеша , плохая, , , кешка
String without ',': кеша плохая кешка
First string: Клара взяла кораллы, которые были куплены для него, а не предназначены кораллы для нее
String without dublicates: Клара взяла , которые были куплены го, а предназначены нее
String without ',': Клара взяла которые были куплены го а предназначены нее
First string: что-то стабильно, а что-то нет, что и требовалось доказать
String without dublicates: стабильно, а нет, что и требовалось доказать
String without ',': стабильно а нет что и требовалось доказать
First string: супер-бизнес-план накрылся и пришлось создать новый супер-бизнес-план, который поможет сделать супер-бизнес
String without dublicates: накрылся и пришлось создать новый , который поможет сделать супер-бизнес
String without ',': накрылся и пришлось создать новый который поможет сделать супер-бизнес
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2023, 08:57
Помогаю со студенческими работами здесь

Регулярное выражение, чтобы достать текст
Есть ответ от сервера: ...

Регулярное выражение чтобы вытащить последнее число
Здравствуйте, у меня есть строка вида: Intel Core i3; 500; Мне нужно с помощью регулярного выражения вытащить от туда только цифру 500,...

Регулярное выражение чтобы убрать пробел после # или №
Здравствуйте, уважаемые форумчане, помогите мне с регулярным выражением. Вот код, у меня не получается составить регулярное выражение...

Регулярное выражение чтобы вытащить курс валют с сайта
Помогите написать регулярное выражение чтобы вытащить курс валют с сайта. https://myfin.by/currency/minsk

Регулярное выражение, чтобы все знаки восклицания перенеслись в конец
Пытаюсь изучить регулярные выражения.. <script type="text/javascript"> var re = /(\S.{+})(\$)/g; var str = "Андрей сьел...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru