Как заменить кавычку "и символ дефиса в строке ничем в Python? - PullRequest
1 голос
/ 10 октября 2009

Я бы хотел заменить " и -

с "" ничего! заставить его исчезнуть.

s = re.sub(r'[^\w\s]', '', s) это делает все знаки препинания исчезающими, но я просто хочу эти 2 символа Спасибо.

Ответы [ 5 ]

6 голосов
/ 10 октября 2009

Мне интересно, почему вы используете регулярное выражение для этой простой замены строки. Единственное преимущество, которое я вижу, это то, что вы можете сделать это в одной строке кода вместо двух, но я лично считаю, что метод замены более понятен, чем регулярное выражение для чего-то подобного.

Строковый объект имеет метод replace - str.replace(old, new[, count]), поэтому используйте replace("-", "") и replace("\"", "").

Обратите внимание, что мой синтаксис может быть немного неправильным - я все еще начинающий Python.

2 голосов
/ 10 октября 2009

В Python 2.6 / 2.7 вы можете использовать полезный метод translate() для строк. При использовании None в качестве первого аргумента этот метод имеет особое поведение удаления всех вхождений любого символа во втором аргументе.

>>> s = 'No- dashes or "quotes"'
>>> s.translate(None, '"-')
'No dashes or quotes'

Согласно комментарию SilentGhost, это становится довольно громоздким как в <2.6, так и в> = 3.0, потому что вам нужно явно создать таблицу перевода. Эти усилия будут иметь смысл только в том случае, если вы много выполняете такого рода операции.

2 голосов
/ 10 октября 2009
re.sub('["-]+', '', s)
1 голос
/ 10 октября 2009

re.sub('[-"]', '', s)

0 голосов
/ 10 октября 2009

В Python 2.6:

print 'Hey -- How are "you"?'.translate(None, '-"')

Возвращает:

Hey  How are you?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...