Функция multi_vowel_words возвращает все слова с 3 или более последовательными гласными - PullRequest
1 голос
/ 15 апреля 2020
```import re
def multi_vowel_words(text):
    pattern =r"\b\w[aeiou]{3,},?\s?.*\w[aeiou]{3,}.*\b"
    result = re.findall(pattern, text)
    return result```
  1. Элемент списка

    , где я делаю неправильно

    "" "после запуска моего кода я получаю следующее: [] ['queen is смелые и милостивые '] [' тихо и ждут своего вкусного ужина '] [] [] "" "

    ниже желаемых результатов

    print (multi_vowel_words (" Жизнь прекрасна "))

    ['beautiful']

    print (multi_vowel_words ("Очевидно, королева смелая и милосердная."))

    ['Очевидно', 'королева', ' мужественный ',' милостивый ']

    print (multi_vowel_words ("Буйные дети должны были сидеть тихо и ждать своего вкусного ужина."))

    [' буйные ',' тихие ',' восхитительно ']

    print (multi_vowel_words («Порядок очереди данных -« первым пришел - первым обслужен »(FIFO)»)) # [' queue ']

    print (multi_vowel_words ("Hello world ! ")) # [] print (multi_vowel_words (" Порядок очереди данных: «Первый пришел - первый вышел»

`Blockquote

( FIFO) ")) # ['queue']

print(multi_vowel_words("Hello world!")) # []

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Если я правильно угадала ваше намерение, вам понадобится регулярное выражение:

r"\b\w*[aeiou]{3,}\w*\b"
0 голосов
/ 15 апреля 2020

Пытаюсь ответить на этот вопрос. Как насчет простого шаблона для проверки трех гласных подряд

def multi_vowel_words(text):
    pattern =r"\b\w*[aeiou]{3,}\w*\b"
    result = re.findall(pattern, text)
    return result
...