Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete rest of string after n-th occurence

I have the following string:

a = "this.is.a.string"

I wish to delete everything after the 3rd '.' symbol so that it returns

trim(a)
>>> "this.is.a"

while a string without the 3rd '.' should return itself.

This answer (How to remove all characters after a specific character in python?) was the closest solution I could find, however I don't think split would help me this time.

like image 764
sachinruk Avatar asked Jan 31 '16 03:01

sachinruk


1 Answers

.split() by the dot and then .join():

>>> ".".join(a.split(".")[:3])
'this.is.a'

You may also specify the maxsplit argument since you need only 3 "slices":

If maxsplit is given, at most maxsplit splits are done (thus, the list will have at most maxsplit+1 elements).

>>> ".".join(a.split(".", 3)[:-1])
'this.is.a'
like image 123
alecxe Avatar answered Sep 28 '22 05:09

alecxe