在第n次出现后删除其余的字符串

sac*_*ruk 3 python regex string python-2.x python-2.7

我有以下字符串:

a = "this.is.a.string"
Run Code Online (Sandbox Code Playgroud)

我希望删除第3个'之后的所有内容.' 符号使它返回

trim(a)
>>> "this.is.a"
Run Code Online (Sandbox Code Playgroud)

而没有第3个'.'的字符串.应该回归自己.

这个答案(如何删除python中特定字符后面的所有字符?)是我能找到的最接近的解决方案,但是split这次我认为不会对我有所帮助.

ale*_*cxe 10

.split()dot然后.join():

>>> ".".join(a.split(".")[:3])
'this.is.a'
Run Code Online (Sandbox Code Playgroud)

您也可以指定maxsplit参数,因为您只需要3个"切片":

如果maxsplit给出,则最多maxsplit完成拆分(因此,列表将具有最多maxsplit+1元素).

>>> ".".join(a.split(".", 3)[:-1])
'this.is.a'
Run Code Online (Sandbox Code Playgroud)