Удалить апостроф из строки Python regex - PullRequest
0 голосов
/ 28 января 2019

У меня есть следующая строка:

i've been running from what i don't know if she's there or if she's cares it's taken you a long time to see you've got a goldfish memory this song's ed'

Как использовать регулярное выражение для удаления всего апострофа между словами?Я пытался использовать re.sub('(?<=[a-z])'(?=[a-z])', '', s), но не смог получить желаемый результат.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Если в камне не указано, что вы должны использовать регулярное выражение;

sentence = r"i've been running from what i don't know if she's there or if she's cares it's taken you a long time to see you've got a goldfish memory this song's ed'"

print(sentence.replace("'", ""))

ВЫХОД:

>>> ive been running from what i dont know if shes there or if shes cares its taken you a long time to see youve got a goldfish memory this songs ed

Что касается комментария Кевина, используйте count вхождений меньше 1;

print(sentence.replace("'", "", sentence.count("'")-1))

ВЫХОД:

>>> ive been running from what i dont know if shes there or if shes cares its taken you a long time to see youve got a goldfish memory this songs ed'
0 голосов
/ 28 января 2019

Вам нужно экранировать одинарную кавычку в регулярном выражении, чтобы отличить ее от шаблона, который также находится в одинарных кавычках:

re.sub('(?<=[a-z])\'(?=[a-z])', '', s)

Но еще одно решение состоит в том, чтобы просто использовать двойные кавычки для всего шаблона.:

re.sub("(?<=[a-z])'(?=[a-z])", "", s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...