Как использовать регулярное выражение для перечисления слов, начинающихся с гласных в предложении - PullRequest
2 голосов
/ 30 сентября 2019

Скажем так, у меня есть следующее предложение:

sent = "My name is xyz and I got my name from my parents. My email address is nomail@gmail.com"

Я хочу получить все слова в этом предложении, которые начинаются с гласной, поэтому такие слова, как , равны , I , - . Это мое регулярное выражение, и оно не работает.

re.findall('^(aeiou|AEIOU)[\w|\s].',sent)

Это результат, который я получаю

['. ', '..', '.s', '@g', '.c']

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

Прежде всего, ваши скобки не сбалансированы, и вы не проверяете границы слов. Попробуйте это:

"\b[(aeiou|AEIOU)].*?\b"
2 голосов
/ 30 сентября 2019

Вы можете использовать re.findall с re.I:

import re
sent = "My name is xyz and I got my name from my parents. My email address is nomail@gmail.com"
result = re.findall('(?<=\W)[aeiou]\w+|(?<=\W)[aeiou]', sent, re.I)

Выход:

['is', 'and', 'I', 'email', 'address', 'is']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...