Python, Как я могу разделить первые и последние двойные кавычки

Я хочу разделить двойные кавычки от

string = '"" " " ""\\1" " "" ""'

стать

string = '" " " ""\\1" " "" "'

Я пытался использовать rstrip, lstrip и strip('[^\"]|[\"$]') но это не работало.

Как я могу сделать это?Спасибо за помощь.

94
задан VeLKerr 25 March 2016 в 23:45
поделиться

7 ответов

Если кавычки, которые вы хотите убрать, всегда будут "первыми и последними", как вы сказали, то вы можете просто использовать:

string = string[1:-1]

175
ответ дан 24 November 2019 в 05:55
поделиться

Если вы не можете предположить, что все строки, которые вы обрабатываете, имеют двойные кавычки, вы можете использовать что-то вроде этого:

if string.startswith('"') and string.endswith('"'):
    string = string[1:-1]

Изменить:

Я уверен, что вы только что использовали строку в качестве имя переменной для примера здесь и в вашем реальном коде имеет полезное имя, но я чувствую себя обязанным предупредить вас, что в стандартных библиотеках есть модуль с именем string . Он не загружается автоматически, но если вы когда-нибудь используете строку импорта , убедитесь, что ваша переменная не затмевает ее.

86
ответ дан 24 November 2019 в 05:55
поделиться

Если строка всегда такая, как вы показали:

string[1:-1]
10
ответ дан 24 November 2019 в 05:55
поделиться

Почти готово. Цитата из http://docs.python.org/library/stdtypes.html?highlight=strip#str.strip

Аргумент chars представляет собой строку указание набора символов, которые будут удаленный.

[...]

Аргумент символов не является префиксом или суффикс; скорее, все комбинации его значения удаляются:

Таким образом, аргумент не является регулярным выражением.

>>> string = '"" " " ""\\1" " "" ""'
>>> string.strip('"')
' " " ""\\1" " "" '
>>> 

Обратите внимание, что это не совсем то, что вы просили, потому что он использует несколько кавычек с обоих концов строки!

9
ответ дан 24 November 2019 в 05:55
поделиться

Если вы уверены, что в начале и в конце есть символ ", который вы хотите убрать, просто сделайте:

string = string[1:len(string)-1]

или

string = string[1:-1]
4
ответ дан 24 November 2019 в 05:55
поделиться

найти позицию первого и последнего "в вашей строке

>>> s = '"" " " ""\\1" " "" ""'
>>> l = s.find('"')
>>> r = s.rfind('"')

>>> s[l+1:r]
'" " " ""\\1" " "" "'
0
ответ дан 24 November 2019 в 05:55
поделиться

Чтобы удалить первый и последний символы, и в каждом случае удалять только в том случае, если рассматриваемый символ является двойной кавычкой:

import re

s = re.sub(r'^"|"$', '', s)

Обратите внимание, что RE шаблон отличается от того, который вы указали, и операция sub («замена») с пустой строкой замены ( strip - это строковый метод, но он делает что-то очень отличное от вашего требования, как указано в других ответах).

42
ответ дан 24 November 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: