从字符串中去除所有的撇号's(apostrophe s)

3
我希望能去掉字符串中的“ 's ”(即所有的撇号 s)。
例如:
a="it's tail was big".split()
for i in range(len(a)):
    a[i]= a[i].strip(r"\'s")

a 变成了

['it', 'tail', 'wa', 'big']

而我期望的是

['it', 'tail', 'was', 'big']

如何使字符串去掉 's 而不是 s?我尝试了 strip(r"\'s") ,但它也不起作用。

此外,有没有比我所做的更好的方法?

谢谢!

1个回答

8
你可以用空字符串替换's然后分割。
>>> txt ="it's tail was big"
>>> txt.replace("'s", '').split()
['it', 'tail', 'was', 'big']

可能值得使用:re.sub("'s? ", " ", txt).split()。 - fileoffset
@fileoffset,这也可以。有没有想过使用RegExp比字符串替换更快? - Bharat
@RKB:当然,正则表达式比字符串替换(string replace())更快。 - sam
我不会说正则表达式一定更快。与基本替换相比,它可能会非常慢,但你在速度上牺牲的同时获得了灵活性。我发布的正则表达式也适用于像Chris'这样的单词(其中省略了尾随的's' - 这是有效的英语语法)。 - fileoffset

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接