Это зависит от того, как заканчивается ваша строка, вы также можете использовать my_string.replace('-\r\n', '')
или дополнительный возврат каретки с помощью re.sub и -(?:\r?\n|\r)
Если перед и после должен быть символ слова, вместо удалив все дефисы в конце строки, вы можете использовать поисковые пути:
(?<=\w)-\r?\n(?=\w)
Regex demo | Python демонстрация
Например
import re
regex = r"(?<=\w)-\r?\n(?=\w)"
my_string = """this good pe-
riod has"""
print (re.sub(regex, "", my_string))
Вывод
this good period has