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

Из предложенных вариантов подходит пятый: \w+(\s\w+)*\. При проверке всей строки используйте re.fullmatch; значения «слово» и «пробел» здесь шире букв и обычного пробела.

Короткий ответ

Что ответить на собеседовании

Из предложенных вариантов подходит пятый: \w+(\s\w+)*. При проверке всей строки используйте re.fullmatch; значения «слово» и «пробел» здесь шире букв и обычного пробела.

Подробный разбор

Ответ с пояснениями

Условие

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

'(\s\w+)*.'

'[A-z]+(\s[A-z]+)*.'

'{w}+(\s{w}+)*.'

'\W+(\s\w+)+.'

'\w+(\s\w+)*.'

Ответ

Из предложенных вариантов подходит пятый: \w+(\s\w+)*. При проверке всей строки используйте re.fullmatch; значения «слово» и «пробел» здесь шире букв и обычного пробела.

import re

pattern = r'\w+(\s\w+)*\.'
valid = re.fullmatch(pattern, 'Hello world.') is not None

Первое \w+ требует слово, группа разрешает дополнительные слова с разделителем, а \. обозначает буквальную точку. fullmatch исключает лишний текст в начале и конце. В Python \w включает также цифры и подчёркивание, а \s — не только обычный пробел. Если нужны исключительно буквы и одиночные пробелы, шаблон следует уточнить. Диапазон [A-z] некорректен как обозначение только латинских букв: между Z и a есть знаки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее