删除字符串中的字符“'s”

时间:2012-11-24 23:31:47

标签: python python-3.2

假设单词末尾有's字符,我该如何删除它?

下面是我试过的:

st = "s'ss python's is fun's "
for ch in st:
    if ch[-2:] in "'s":   # check if last two index is 's
        st = st.replace(ch, "")

输出应该是:“s'ss python很有趣”

不知何故,它会删除所有s',而不只是删除。

如何删除包含“s”的字符。

4 个答案:

答案 0 :(得分:2)

我认为这可以实现您所寻找的目标(对不起,如果我误解了:))。这会将您的字符串拆分为空格,然后遍历生成的“单词”。如果单词以's结尾,则删除该部分;如果没有,则返回整个单词。然后结果与空格字符连接以返回字符串:

In [16]: st = "s'ss a python's is fun's "

In [17]: ' '.join(s if s[-2:] != "'s" else s[:-2] for s in st.split())
Out[17]: "s'ss a python is fun"

答案 1 :(得分:0)

mylist = []
strin = "s'ss hello you's"
mylist = list(strin)
mylist.remove[-1]
print str(mylist)
#the output will be as , "s'ss hello you'"

答案 2 :(得分:0)

我会使用正则表达式,如下所示:

>>> import re
>>> re.sub(r"'s\b", "", "s'ss python's ")  
"s'ss python "

\b匹配单词的开头或结尾)

答案 3 :(得分:0)

首先,您的st以空格结尾 - 您可能希望使用str.splitstr.lstrip删除此内容:

>>> st = "s'ss python's is fun's "
>>> st = st.strip()
>>> print(st)
s'ss python's is fun's

然后删除尾随's有许多不同的方法。

使用正则表达式是一种整洁的方式:

>>> import re
>>> re.sub("'s$", "", st)
"s'ss python's is fun"

或者您可以检查字符串是否以's结尾并删除最后两个字符:

>>> if st.endswith("'s"):
...     st = st[:-2]

请勿使用str.rstrip执行此操作,因为它可能不会像您预期的那样:

>>> st.rstrip("'s") # Bad
"s'ss python's is fun"

在这种情况下看起来是正确的,但正如文档所解释的那样,“[the]参数不是后缀;相反,它的值的所有组合都被剥离”。例如:

>>> "lots of ssssss's".rstrip("'s")
'lots of '