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

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

03.06.2022, 20:02. Показов 790. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Удалить из текста все фрагменты в круглых скобках. Учесть, что скобки могут быть вложенными.

У меня есть данное решение:
Java
1
2
String str = textArea1.getText();
str = str.replaceAll("\\(.*?\\) ?", "");
Оно прекрасно справляется с удалением текста в скобках, но не работает, когда речь идёт о вложенных.
Т.е в примере "Это текстовая строка (пример (вложенная скобка))" на выходе я получаю "Это текстовая строка )".
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2022, 20:02
Ответы с готовыми решениями:

Учитывая,что конструкторы не могут быть виртуальными,опишите схему,по которой вы могли бы достичь аналогичного эффекта?
Дорогие программисты, во первых, хочу поздравить вас с Наступающим новым Годом! Я к вам обращаюсь с маленькой просьбой. Я никак не могу...

ERROR! 1037: Пакеты не могут быть вложенными
В Adobe Flash создал файл .fla->написал код: package zoo{ public class VirtualZoo{ public function VirtualZoo(){ } ...

Вытянуть фразы в кавычках, которые могут быть вложенными
Здравствуйте. Нужна помощь в составлении регулярного выражения. Есть предложения в котором встречаются фразы в кавычках. Кавычки могут...

14
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.06.2022, 13:41
Регулярками можно только два уровня вложенности. Точнее, можно и больше - но это адъ.
Она и на два уровня монстр будет.
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
07.06.2022, 08:06
Кстати в прикладных прогах частенько требуется отыскивать вложенные конструкции типа скобки в скобках, кавычки в кавычках и т.п. Кто какие механики применяет?
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
07.06.2022, 08:24
\([^(]*?\)

Должно съесть самые глубокие по вложенности.
Повторять пока строка не перестанет менять длину.

Добавлено через 3 минуты
Чтоб в один проход, надо пробежаться по строке и смотреть на счетчик, '(' +=1, ')' это -=1, копировать символы где счётчик нулевой. Счётчик не должен уходить ниже нуля.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
07.06.2022, 08:26
QueryMonkey, реплейсить регуляркой в цикле и каждый раз проверять длину строки... Сверхэффективно.
Ты напиши регулярку, чтоб реплейснуть 1 раз.
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
07.06.2022, 08:41
iSmokeJC, такая задача не требует регулярок. Нужно "умение" считать скобки. Будет быстрее в разы.

Я предложил два верных решения. Одно - с регуляркой, второе - простое.

Сколько решений предложили вы?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
07.06.2022, 09:08
QueryMonkey, то, что эта задача не решается регулярками, я вроде бы довольно прозрачно поведал в первом же посте.
Предложить варианты? Да влехкую. Классика - стек, рекурсия.
Но надо ли оно ТСу?
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
07.06.2022, 09:20
iSmokeJC, рекурсить строчку для такой задачи.. Сверхэффективно.

Ты напиши так,чтоб в один проход, за О(n).
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
07.06.2022, 09:26
Господи, Боже ты мой! Эта задача изжевана и переварена уже вусмерть. На любом углу стопицот решений валяется.
Цитата Сообщение от QueryMonkey Посмотреть сообщение
рекурсить строчку
Дык можно разбить на массив чаров например. Не суть.
Цитата Сообщение от QueryMonkey Посмотреть сообщение
Ты напиши
Уже надоело писать одно и тоже по сто раз. Неинтересно
0
Нарушающий
417 / 305 / 46
Регистрация: 13.04.2022
Сообщений: 1,759
07.06.2022, 09:28
SerhioAdams, вам удалось решить задачу?
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
07.06.2022, 10:18
Цитата Сообщение от SerhioAdams Посмотреть сообщение
"\\(.*?\\) ?"
Попробуй: "\\(.*\\)"
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
07.06.2022, 10:22
Arsegg, (...)....(...)
- грохнет вообще всё
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
07.06.2022, 10:30
Цитата Сообщение от SerhioAdams Посмотреть сообщение
Удаление фрагмента в круглых скобках
iSmokeJC, в круглых же скобках?)) Тут вообще задача похожа на XY-проблему...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
07.06.2022, 11:03
Arsegg, ну почему же? Вроде бы конкретно -
Цитата Сообщение от SerhioAdams Посмотреть сообщение
Удалить из текста все фрагменты в круглых скобках
Удалить (из) текста (все) фрагменты в (круглых) скобках => Удалить текста фрагменты в скобках
Удалить (из (текста) все) фрагменты в (круглых) скобках => Удалить фрагменты в скобках
Твоя регулярка оставит - Удалить скобках
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
07.06.2022, 11:24
iSmokeJC, смотри, есть строка "()))", что должно на выходе получиться? "" или "))"? Если 1, то мое решение вполне годится, а если 2, то нужен счетчик скобок.
P. S. Намек на нечетко поставленное условие.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.06.2022, 11:24
Помогаю со студенческими работами здесь

Что означает название переменной в круглых скобках?
Что означает название переменной в круглых скобках? В комментариях указан тип переменной и некоторые пояснения. auto c = 0; // int ...

Что означает число в круглых скобках после INT?
приветствую. естъ поле aaa, его тип естъ INT. что разница между етими: INT(3) и INT(8) если в поле aaa я могу записатъ и в первом и...

Регулярное выражение. Взять то, что в первых круглых скобках
Добрый день! В регулярками не очень, но обещаю исправиться! :) Помогите плиз. Есть строка например (11.22.33.44)...

Что означают буквы в круглых скобках в книге Шевелев Ю. П. Ш Дискретная математика
Если знакомы с книгой. Что обозначает буквы в круглых скобках "(ВХМ). Пусть A — множество простых чисел...", "(ШИВ)!...

Что означает число в круглых скобках при выводе справки (man) в терминале
Доброго времени. Подскажите, что означает число в круглых скобках при выводе man'а в терминале? Пример: вводим «man man»; открывается...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru