Je travaille sur un texte avec plusieurs divisions de syllabes.
Une chaîne typique est quelque chose comme ça
"this good period has"
J'ai essayé:
my_string.replace('-'+"\r","")
Cependant, cela ne fonctionne pas.
Je voudrais obtenir
"this good pe- riod has"
3 Réponses :
Avez-vous essayé ceci?
import re text = """this good pe- riod has""" print(re.sub(r"-\s+", '', text)) # this good period has
Après avoir fait correspondre -
, vous devez faire correspondre la nouvelle ligne \ n
:
my_string = """this good pe- riod has""" print(my_string.replace("-\n","")) # this good period has
Cela dépend de la fin de votre chaîne, vous pouvez également utiliser my_string.replace ('- \ r \ n', '')
ou un retour chariot optionnel en utilisant re.sub et - (?: \ r? \ n | \ r)
S'il doit y avoir un caractère de mot avant et après, au lieu de supprimer tous les traits d'union à la fin de la ligne, vous pouvez utiliser des contours:
this good period has
Par exemple
import re regex = r"(?<=\w)-\r?\n(?=\w)" my_string = """this good pe- riod has""" print (re.sub(regex, "", my_string))
Sortie
(?<=\w)-\r?\n(?=\w)
@CarySwoveland Vous êtes très vif. (Je voulais dire aujourd'hui, mais vous êtes toujours pointu :-))
@CarySwoveland Oui, c'est pourquoi j'ai commencé la réponse avec Cela dépend de la fin de votre chaîne
comme ideone. com / Qkmu32
Ma réponse fonctionne-t-elle pour vous?