Раствор
re.sub('(?<!\.)\.{,2}(?!\.)', '', 'Hello.... I am shy.')
Проблема в том, что мне пришлось проверить, начинается ли совпадение с точки или с точки.
Но мы используем обычное регулярное выражение, окружение вокруг точки также совпадает, но мы не хотим его удалять. Поэтому мы используем оператор
?<!
и
?!
, которые смотрят за и локхед операторов. Вы можете проверить условия, не сопоставляя их. Это отличное решение.
П.С .: Я понял, что у Виктора было то же самое решение, но он не дал должного объяснения.