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

Образец ввода

['Hi my name is blank.', 'Do it 3 times.', 'Check out this website: https://blah.com', 'I like pie.', 'My email is asdf@jkl@gmail.com.']

Образец вывода

['Hi my name is blank.','I like pie']

Как я могу вернуть слова, которые используют только слова и заканчивающиеся точкой?

Это регулярное выражение, которое я пытаюсь использовать: [A-Za-z]*.

1 Ответ

0 голосов
/ 30 января 2019

Вы можете использовать это регулярное выражение:

^[a-zA-Z]+(?:\s+[a-zA-Z]+)*\.?$

Демонстрация RegEx

Подробности RegEx:

  • ^: начало
  • [a-zA-Z]+: сопоставить слово, содержащее 1+ алфавитов
  • (?:\s+[a-zA-Z]+)*: сопоставить 0 или более слов, разделенных 1+ пробелами
  • \.?$: Соответствует необязательному периоду до конца

Код:

>>> list = ['Hi my name is blank.', 'Do it 3 times.', 'Check out this website: https://blah.com', 'I like pie.', 'My email is asdf@jkl@gmail.com.']
>>> reg = re.compile(r'^[a-zA-Z]+(?:\s+[a-zA-Z]+)*\.?$')
>>> print (filter(reg.match, list))
['Hi my name is blank.', 'I like pie.']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...