Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13

Вырезать слово из строки

15.01.2020, 12:19. Показов 6964. Ответов 16

Студворк — интернет-сервис помощи студентам
Добрый день!
Прошу помощи:
Имеется строка, которая содержит слово, внутри которого есть заданная переменная.
Слово с переменной начинаться не может.
Задание : удалить слово из строки с помощью регулярного выражения.
Пока имею такое:
Java
1
str = str.replaceFirst("\\b.*?" + var +".*?\\b","");
Для конца слова такое работает - отсекается правильно, но для начала берутся первые символы строки, а не слова.

Буду благодарен за советы.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2020, 12:19
Ответы с готовыми решениями:

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

Вырезать значения из строки с использованием регулярных выражений
Всем доброго времени суток! Возникла такая проблема: не получается вырезать значения из, ну например, вот такого текста: <variable...

Как вырезать слово из строки?
Здравствуйте! Помогите вырезать слово из строки и записать его в переменную. Вот есть строки, которые возвращает функция finfo_file. Надо...

16
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
15.01.2020, 12:31
sigdems, чем .replaceAll( не зашел?
0
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
15.01.2020, 12:33  [ТС]
Можно и replaceAll, на результат не влияет.
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
15.01.2020, 12:37
твоя цель
Цитата Сообщение от sigdems Посмотреть сообщение
удалить слово из строки
и
Цитата Сообщение от sigdems Посмотреть сообщение
Можно и replaceAll
в чем трабла?
0
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
15.01.2020, 12:40  [ТС]
Это регулярное выражение отрабатывает неверно:
Вырезается кусок, начиная с начала строки, а не слова, до конца слова.
Слова в строке разделены пробелами, но слава могут содержать и цифры.
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
15.01.2020, 12:43
Цитата Сообщение от sigdems Посмотреть сообщение
слава могут содержать и цифры.
какая разница, ты же задаешь то слово, которое удаляешь?!
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.01.2020, 12:45
sigdems, \b замени на \W
0
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
15.01.2020, 12:50  [ТС]
Нет, переменные в цикле перебираются. От этого и зависит само содержание искомого слова.
В любом случае, мне надо удалять слово, а не большую часть строки.

Добавлено через 2 минуты
xoraxax, Результат не изменился.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.01.2020, 12:56
Цитата Сообщение от sigdems Посмотреть сообщение
xoraxax, Результат не изменился.
https://regex101.com/r/z6RNFj/1
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
15.01.2020, 12:58
sigdems, это "\\b.*?" + var +".*?\\b" пробовал делать отдельной строкой, а потом вставлять в реплейсы?
0
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
15.01.2020, 14:13  [ТС]
xoraxax, может туплю, я вижу, что в твоём примере на регекс101 выражение находятся верно, но в среде разработке на тесте у меня идёт обрезание большего числа символов - с начала строки, а не слова, все впереди идущие слова тоже удаляются.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.01.2020, 14:48
Цитата Сообщение от sigdems Посмотреть сообщение
может туплю
телепаты в отпуске

Java
1
2
3
4
5
String toDelete = "zxc";
        String regex = String.format("\\W.*?%s.*?\\W", toDelete);
        String s = "asd qwe123zxc123qwe asd";
        String result = s.replaceAll(regex, "");
        System.out.println(result);
Code
1
2
3
asdasd
 
Process finished with exit code 0
0
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
15.01.2020, 14:57  [ТС]
xoraxax, если первое "asd" поменять на любую последовательность кириллицы, то все ломается.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.01.2020, 15:15
ну ясен пень

Добавлено через 9 минут
"(?U)\\W.*?%s.*?\\W"
0
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
15.01.2020, 15:31  [ТС]
xoraxax, почти, но нет)
Если перед искомым словом стоит ещё несколько слов, то останется только первое и хвост.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
15.01.2020, 15:47
Лучший ответ Сообщение было отмечено sigdems как решение

Решение

так попробуй \b\w*?zxc\w*\b
0
0 / 0 / 0
Регистрация: 17.03.2011
Сообщений: 13
15.01.2020, 15:51  [ТС]
xoraxax, спасибо большое, это сработало!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2020, 15:51
Помогаю со студенческими работами здесь

Вырезать слово
Здравствуйте. Заменяю имя строго в тексте, только то за которым не следует другой символ. $string = "Максим, ываыва...

Вырезать слово
Как вырезать из вывода ping процент принятых пакетов? Пример строки: 3 packets transmitted, 3 received, 0% packet loss, time 1998ms ...

Вырезать слово с текста
Есть большой текст. Есть число х!!! Точно знаю что символ которий стоит на позиции х есть пробел. нужно вырезать следующий набор...

Вырезать слово до и после пробела
Добрый день. Нужно вырезать Фамилию, Имя из строки фио. Сидоров В Александр. Сидоров и Александр нужно вырезать и поместить в две...

Вырезать слово в тексте и вывести его
<html><body> <?php $st = "Том и Джери - весёлый мультфильм и очень интересный!"; $person = explode("веселый мультфильм...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru