Разделение предложения по запятой с дополнительным условием с помощью регулярных выражений на python
Всем привет!
Пытаюсь написать регулярку, которая разделяла бы предложение по запятой, если после неё есть минимум три слова.
Вот то, что у меня получается:
text = я бы хотел, нет, я бы очень хотел разделять по запятой.
re.split(r',(?=( [А-ЯЁа-яёA-Za-z]+){3,})', string=text)
На выходе это даёт список с лишним словом: ['я бы хотел, нет', ' запятой', ' я бы очень хотел разделять по запятой']
Как мне получить ['я бы хотел, нет', ' я бы очень хотел разделять по запятой']?
Всем заранее спасибо!
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте
,(?=\s*\w+(?:\s+\w+){2})
Подробности
,- запятая(?=\s*\w+(?:\s+\w+){2})- блок предварительного просмотра вперёд, требующий наличия (сразу после текущей позиции):\s*- один и более пробельных символов\w+- один и более букво-цифровых символов и символов нижнего подчёркивания(?:\s+\w+){2}- два повтора одного и более пробельных символов + одного и более букво-цифровых символов и символов нижнего подчёркивания.