删除有条件的报价

时间:2014-09-03 02:25:05

标签: python

如果我想从以下单词中删除引号:

don't
hello'
world'

如何制作它以便我只删除第2和第3个引用。即我想这样做,如果它没有被两个字母包围并且得到这样的最终结果,我只会引用引号:

don't
hello
world

希望这是有道理的。

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

string = "hello'"

if string[-1] == "'":
    string = string[:len(string) - 2]

答案 1 :(得分:0)

您可以使用regex执行此操作,但它确实不需要它。如果这是对您的问题的一种无辜的处理,请告诉我,但似乎您可以采取以下措施:

if not test_string.endswith("'"):
    test_string.replace("'", "")

如果您真的想使用regex(这可能是一个不错的选择,具体取决于您的应用程序),您可以这样做:

import re
re.sub('(?:(?<=\w)[\'\"](?:\W))|(?:(?<=\W)[\'\"](?:\w))', '', test_string)

答案 2 :(得分:0)

试试这个:

words = ["don't", "hello'", "world'"]
quotes = ["'", '"']
output = list()

for word in words:
    if word[-1] in quotes:
        word = word[: (len(word) - 1)] 
    output.append(word)

print output
#=> ["don't", "hello", "world"]

我假设您还想要处理不需要的报价也可以是双引号"的情况,以及单引号。如果没有,你可以使用:

if word[-1] === "'":