Я хочу разделить двойные кавычки от
string = '"" " " ""\\1" " "" ""'
стать
string = '" " " ""\\1" " "" "'
Я пытался использовать rstrip
, lstrip
и strip('[^\"]|[\"$]')
но это не работало.
Как я могу сделать это?Спасибо за помощь.
Если кавычки, которые вы хотите убрать, всегда будут "первыми и последними", как вы сказали, то вы можете просто использовать:
string = string[1:-1]
Если вы не можете предположить, что все строки, которые вы обрабатываете, имеют двойные кавычки, вы можете использовать что-то вроде этого:
if string.startswith('"') and string.endswith('"'):
string = string[1:-1]
Изменить:
Я уверен, что вы только что использовали строку
в качестве имя переменной для примера здесь и в вашем реальном коде имеет полезное имя, но я чувствую себя обязанным предупредить вас, что в стандартных библиотеках есть модуль с именем string
. Он не загружается автоматически, но если вы когда-нибудь используете строку импорта
, убедитесь, что ваша переменная не затмевает ее.
Если строка всегда такая, как вы показали:
string[1:-1]
Почти готово. Цитата из http://docs.python.org/library/stdtypes.html?highlight=strip#str.strip
Аргумент chars представляет собой строку указание набора символов, которые будут удаленный.
[...]
Аргумент символов не является префиксом или суффикс; скорее, все комбинации его значения удаляются:
Таким образом, аргумент не является регулярным выражением.
>>> string = '"" " " ""\\1" " "" ""'
>>> string.strip('"')
' " " ""\\1" " "" '
>>>
Обратите внимание, что это не совсем то, что вы просили, потому что он использует несколько кавычек с обоих концов строки!
Если вы уверены, что в начале и в конце есть символ ", который вы хотите убрать, просто сделайте:
string = string[1:len(string)-1]
или
string = string[1:-1]
найти позицию первого и последнего "в вашей строке
>>> s = '"" " " ""\\1" " "" ""'
>>> l = s.find('"')
>>> r = s.rfind('"')
>>> s[l+1:r]
'" " " ""\\1" " "" "'
Чтобы удалить первый и последний символы, и в каждом случае удалять только в том случае, если рассматриваемый символ является двойной кавычкой:
import re
s = re.sub(r'^"|"$', '', s)
Обратите внимание, что RE шаблон отличается от того, который вы указали, и операция sub
(«замена») с пустой строкой замены ( strip
- это строковый метод, но он делает что-то очень отличное от вашего требования, как указано в других ответах).