26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82

REGEX. Подряд три одинаковые буквы

22.05.2019, 09:39. Показов 14883. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, ребят!

Встретилась такая задача, не пойму как подобрать шаблон:

Oh no! It seems my friends spilled beer all over my keyboard last night and my keys are super sticky now. Some of the time whennn I press a key, I get two duplicates. Can you ppplease help me fix thhhis?

О нет! Кажется, мои друзья пролили пиво по всей моей клавиатуре прошлой ночью, и мои клавиши теперь очень липкие. Иногда, когда я нажимаю клавишу, я получаю две копии. Можете ли вы помочь мне исправить это?

Необходимо убрать повторяющиеся буквы там где их три, оставить одну.

Знаю, что можно задавать переменную в шаблоне, но у меня с таким:
Python
1
r'(?P<pattern>\w){2}'
, заменив на пустую строку '', не проходит все тесты и выдает:

You should only remove strings that fit the task description. They are finite in length, and you are matching too much. For example, aaaaa should become aaa. I said that sometimes each character gets repeated two times. In the string aaaaa I pressed a once, which produced the following string aaa. I then pressed it two times again, without getting any repeats. I only want you to remove the repeated characters!

Вы должны удалять только те строки, которые соответствуют описанию задачи. Они конечны по длине, а вы слишком много подходите. Например, ааааа должна стать ааа. Я сказал, что иногда каждый персонаж повторяется два раза. В строке aaaaa я нажал один раз, что привело к следующей строке aaa. Затем я снова нажал два раза, не получая повторений. Я только хочу, чтобы вы удалили повторяющиеся символы!

«Затык». Куда идти дальше?!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2019, 09:39
Ответы с готовыми решениями:

Три подряд идущих буквы
Всем привет! Возникла такая проблема. Есть задача проверить список на буквы Если 3 буквы подряд идущие(например, qwe), то выводит...

Задан текст, найти слова, содержащие две одинаковые буквы подряд и их порядковые номера
Допустим, задан следующий текст: &quot;hello my neighbour, i'am glad to see you.&quot; необходимо решить максимально просто без всяких замудрений. ...

Удалить подряд идущие одинаковые буквы
помогите,пожалуйста, с составлением программы: Оставить в данном слове из каждого набора одинаковых букв, идущих подряд, только одну букву

10
22.05.2019, 11:45

Не по теме:

пили бы водку - проблем бы не было

0
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
22.05.2019, 11:50  [ТС]
Catstail, а по теме?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,741
Записей в блоге: 14
22.05.2019, 11:57
Это нужно обязательно регулярным выражением?
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
22.05.2019, 12:29
Python
1
2
3
import re;
result = re.sub(r'([а-яa-z])(?=\1\1)[^\s\.]', '', 'Вы должны удалять только те строки, которые соответствуют описанию задачи. Они конечны по длине, а вы слишком много подходите. Например, ааааа должна стать ааа. Я сказал, что иногда каждый персонаж повторяется два раза. В строке aaaaa я нажал один раз, что привело к следующей строке ааа. Затем я снова нажал два раза, не получая повторений. Я только хочу, чтобы вы удалили повторяющиеся символы!');
print(result);
Добавлено через 13 минут
Сорри, вот

Python
1
2
3
import re
result = re.sub(r'([а-яa-z])\1(?=\1)', '', 'Oh no! It seems my friends spilled beer all over my keyboard last night and my keys are super sticky now. Some of the time whennn I press a key, I get two duplicates. Can you ppplease help me fix thhhis?')
print(result)
0
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
22.05.2019, 12:35  [ТС]
Azdeman, из пяти букв должно остаться три. «Hero» один раз нажимает, и пишется
помимо нажатого еще и два раза эта же буква.А потом уже клава работает норм. Из этого
следует, что из пяти остается три. А у вас удаляются по две
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.05.2019, 17:47
Лучший ответ Сообщение было отмечено 7esoterik7 как решение

Решение

Python
1
re.sub(r'(\w)\1\1', r'\1',
Не?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
25.05.2019, 19:27
Python
1
2
3
4
5
6
7
8
import  re
def cleaner(mstr):
    res = re.sub(r'([а-яa-z])\1(?=\1)', '',mstr)
    print(res)
    return res
if __name__ == '__main__':
    mstr=input()
    cleaner(mstr)
0
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
25.05.2019, 19:32  [ТС]
Рыжий Лис, все сработало! Только я точку поставил вместо \w.
А можете прокомментировать решение, а то я че-то не понял...
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.05.2019, 20:24
(\w) — регулярка захватывает одну букву (ну или у вас если точка — то любой символ), а дальше ищем уже захваченную группу.

Как только регулярка сработает вся (три символа), то заменяем её на на первый символ.
1
26 / 10 / 0
Регистрация: 26.11.2018
Сообщений: 82
25.05.2019, 21:19  [ТС]
Рыжий Лис, понял!
Получается что:
1) обрамляем в скобки - мы выделяем группу
2) знак \1 означает ПЕРВУЮ выделенную в скобках группу - точно такую же, какую программа поймала при первом прохождении



Рыжий Лис, спасибо!!!

Кстати, кому интересно, данная задачка вот с этого сайта https://regex101.com/
Там и задачи есть и проверка сразу и много других фишек
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.05.2019, 21:19
Помогаю со студенческими работами здесь

напечатать последовательно двойные буквы(подряд две одинаковые)
Нужно напечатать последовательно двойные буквы(подряд две одинаковые) и чтобы считывал с одного файла где находиться текст и записывал уже...

Regex: проверить символьную строку, чтобы первые три ее символа были буквы
Как проверить символьную строку чтобы первые три ее символа были буквы(а не цифры и т.п.)???

Найти в тексте слова, содержащие две одинаковые буквы подряд
Конец семестра, а две последние лабы не сданы!:( Сам бы решил, но я даже не знаю с чего начать. 2.В текстовом файле input.txt...

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

Искать в строке 3 одинаковые буквы, идущие подряд и записывать только одну
дана строка, должен искать 3 одинаковые буквы, идущие подряд и записывать только одну, например: в исходном файле было...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru