Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2023, 09:49   #1
MaxBrat
Пользователь
 
Регистрация: 27.09.2022
Сообщений: 32
По умолчанию Нужно помочь з кодом на Python

Нужна помощь у меня есть код на Python:
Код:
import re

string = ' мяумяу баба назад '

result = re.findall(r'\b(\S{2})\S*?\1',string)

print(result)
Мне нужно чтобы он выводил слова которые имеют одинаковый слог.
На примере моего кода должно выводить 'мяумяу баба' но он выводит только 'мя', 'ба'. Я не могу понять з чем это связано((.
Заранее благодарю))
MaxBrat вне форума Ответить с цитированием
Старый 23.02.2023, 10:59   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Сообщение от MaxBrat Посмотреть сообщение
должно выводить
почему?

Цитата:
Сообщение от MaxBrat Посмотреть сообщение
Я не могу понять з чем это связано((.
Вы попросили его найти одинаковые подстроки из 2 символов в слове - он нашел. С чем же это связано? Может с тем, что оно работает как надо?
p51x вне форума Ответить с цитированием
Старый 23.02.2023, 12:11   #3
MaxBrat
Пользователь
 
Регистрация: 27.09.2022
Сообщений: 32
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
почему?


Вы попросили его найти одинаковые подстроки из 2 символов в слове - он нашел. С чем же это связано? Может с тем, что оно работает как надо?
Проблема в том что код выводи слог который дважды повторяется, а мне нужно чтобы оно выводило именно слово в котором дважды повторяется слог.
MaxBrat вне форума Ответить с цитированием
Старый 23.02.2023, 13:53   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
"\b\w*?(\S{2})\S*?\1\w*\b"
p51x вне форума Ответить с цитированием
Старый 23.02.2023, 15:42   #5
MaxBrat
Пользователь
 
Регистрация: 27.09.2022
Сообщений: 32
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
"\b\w*?(\S{2})\S*?\1\w*\b"
Оно всё также выводит только слог который повторяется а не слово в котором повторяется слог((.

Я так понимаю невозможно так сделать пользуясь регулярными выражениями?
MaxBrat вне форума Ответить с цитированием
Старый 23.02.2023, 19:44   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Можно с таким костылем:
Код:
result = [i[0] for i in re.findall(r"(\b\w*?(\w{2})\w*?\2\w*\b)", string)]
А как упростить, так сразу в голову не приходит.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 23.02.2023, 23:14   #7
MaxBrat
Пользователь
 
Регистрация: 27.09.2022
Сообщений: 32
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Можно с таким костылем:
Код:
result = [i[0] for i in re.findall(r"(\b\w*?(\w{2})\w*?\2\w*\b)", string)]
А как упростить, так сразу в голову не приходит.
Спасибо огромное))
MaxBrat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помочь с кодом с++ Vlados123 Помощь студентам 1 25.08.2021 14:56
Помочь с кодом с++ Vlados123 Помощь студентам 1 24.08.2021 21:18
Нужно помочь с составлением кода на Python GraV1S Помощь студентам 0 25.12.2019 17:01
Помочь с кодом на паскале!! Настена290 Паскаль, Turbo Pascal, PascalABC.NET 9 26.01.2012 18:44
Кто может помочь с кодом? Maria_Добрая Помощь студентам 28 07.06.2011 01:15