Hi guys, Pretty new to Python so be nice please!
I have a string of text-how do I remove all the text after some certain characters? The text after will change so I want to remove after some text which doesn't change.
Hope that makes sense!
Thanks
Hi guys, Pretty new to Python so be nice please!
I have a string of text-how do I remove all the text after some certain characters? The text after will change so I want to remove after some text which doesn't change.
Hope that makes sense!
Thanks
Without a RE (which I assume is what you want):
def remafterellipsis(text):
where_ellipsis = text.find('...')
if where_ellipsis == -1:
return text
return text[:where_ellipsis + 3]
or, with a RE:
import re
def remwithre(text, there=re.compile(re.escape('...')+'.*')):
return there.sub('', text)
Split on your separator at most once, and take the first piece:
sep = '...'
rest = text.split(sep, 1)[0]
You didn't say what should happen if the separator isn't present. Both this and Alex's solution will return the entire string in that case.
Assuming your separator is '...', but it can be any string.
text = 'some string... this part will be removed.'
head, sep, tail = text.partition('...')
>>> print head
some string
If the separator is not found, head will contain all of the original string.
The partition function was added in Python 2.5.
partition(...) S.partition(sep) -> (head, sep, tail)
Searches for the separator sep in S, and returns the part before it, the separator itself, and the part after it. If the separator is not found, returns S and two empty strings.