Как заменить дефис и новую строку в строке в Python - PullRequest
1 голос
/ 16 июня 2020

Я работаю с текстом, состоящим из нескольких слогов.

Типичная строка выглядит примерно так

"this good pe-
riod has"

Я пробовал:

my_string.replace('-'+"\r","")

Однако это не работает.

Я бы хотел получить

"this good period has"

Ответы [ 3 ]

1 голос
/ 16 июня 2020

После совпадения - вы должны сопоставить новую строку \n:

my_string = """this good pe-
riod has"""
print(my_string.replace("-\n",""))
# this good period has
1 голос
/ 16 июня 2020

Это зависит от того, как заканчивается ваша строка, вы также можете использовать 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
1 голос
/ 16 июня 2020

Вы пробовали это?

import re

text = """this good pe-
riod has"""
print(re.sub(r"-\s+", '', text))
# this good period has
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...