I'd like to remove all characters before a designated character or set of characters [for example]:
Nội dung chính
- How do you remove part of a string before a certain character in Python?
- How do you remove part of a string after a specific character in Python?
- How do you trim a character in a string in Python?
- How do you delete something before a space in Python?
intro = "I'm Tom."
Now I'd like to remove the before
I'm
[or more specifically, I
]. Any suggestions?
asked Jun 19, 2015 at 19:20
SaroekinSaroekin
1,0651 gold badge7 silver badges19 bronze badges
4
Use re.sub
. Just match all the chars upto I
then replace the matched chars with I
.
re.sub[r'^.*?I', 'I', stri]
answered Jun 19, 2015 at 19:22
Avinash RajAvinash Raj
169k25 gold badges214 silver badges262 bronze badges
9
str.find
could find character
index of certain string's first appearance
:
intro[intro.find['I']:]
answered Jun 7, 2018 at 12:56
duanduan
8,0193 gold badges47 silver badges67 bronze badges
2
Since index[char]
gets you the first index of the character, you can simply do string[index[char]:]
.
For example, in this case index["I"] = 2
, and
intro[2:] = "I'm Tom."
answered Jun 19, 2015 at 19:22
AshkayAshkay
7861 gold badge7 silver badges17 bronze badges
3
If you know the character position of where to start deleting, you can use slice notation:
intro = intro[2:]
Instead of knowing where to start, if you know the characters to remove then you could use the lstrip[] function:
intro = intro.lstrip[""]
answered Jun 19, 2015 at 20:15
Brent WashburneBrent Washburne
12.4k4 gold badges58 silver badges78 bronze badges
str = "I'm Tom."
temp = str.split["I",1]
temp[0]=temp[0].replace["",""]
str = "I".join[temp]
answered Jun 19, 2015 at 19:26
3
I looped through the string and passed the index.
intro_list = []
intro = "I'm Tom."
for i in range[len[intro]]:
if intro[i] == '':
pass
else:
intro_list.append[intro[i]]
intro = ''.join[intro_list]
print[intro]
answered Apr 28, 2020 at 7:22
>>> intro = "I'm Tom."
#Just split the string at the special symbol
>>> intro.split[""]
Output = ['', "I'm Tom."]
>>> new = intro.split[""]
>>> new[1]
"I'm Tom."
answered Feb 1, 2021 at 10:57
import re
date_div = "Blah blah\nblah, Updated: Aug. 23, 2012 Blah blah Updated: Feb. 13, 2019"
up_to_word = ":"
rx_to_first = r'^.*?{}'.format[re.escape[up_to_word]]
rx_to_last = r'^.*{}'.format[re.escape[up_to_word]]
# [Dot.] In the default mode, this matches any character except a newline.
# If the DOTALL flag has been specified, this matches any character including a newline.
print["Remove all up to the first occurrence of the word including it:"]
print[re.sub[rx_to_first, '', date_div, flags=re.DOTALL].strip[]]
print["Remove all up to the last occurrence of the word including it:"]
print[re.sub[rx_to_last, '', date_div, flags=re.DOTALL].strip[]]
answered Aug 24, 2020 at 11:13
This solution works if the character is not in the string too, but uses if statements which can be slow.
if 'I' in intro:
print['I' + intro.split['I'][1]]
else:
print[intro]
answered Jul 11, 2021 at 5:06
You can use itertools.dropwhile
to all the characters before seeing a character to stop at. Then, you can use ''.join[]
to turn the resulting iterable back into a string:
from itertools import dropwhile
''.join[dropwhile[lambda x: x not in stop, intro]]
This outputs:
I'm Tom.
answered Apr 10 at 23:26
BrokenBenchmarkBrokenBenchmark
16k7 gold badges18 silver badges29 bronze badges
Based on the @AvinashRaj answer, you can use re.sub to substituate a substring by a string or a character thanks to regex:
missing import re
output_str = re.sub[r'^.*?I', 'I', input_str]
answered May 17 at 17:56
quentquent
1,7301 gold badge20 silver badges26 bronze badges
import re
intro = "I'm Tom."
re.sub[r'I', 'I', intro]
Tunaki
128k45 gold badges321 silver badges405 bronze badges
answered Jun 5, 2016 at 5:58
1
How do you remove part of a string before a certain character in Python?
To remove everything before the first occurrence of the character '-' in a string, pass the character '-' as separator and 1 as the max split value. The split['-', 1] function will split the string into 2 parts, Part 1 should contain all characters before the first occurrence of character '-'.
How do you remove part of a string after a specific character in Python?
Use str..
a_string = "ab-cd".
split_string = a_string. split["-", 1] Split into "ab" and "cd".
substring = split_string[0].
print[substring].
How do you trim a character in a string in Python?
Use the . strip[] method to remove whitespace and characters from the beginning and the end of a string. Use the . lstrip[] method to remove whitespace and characters only from the beginning of a string.
How do you delete something before a space in Python?
strip[] Python String strip[] function will remove leading and trailing whitespaces. If you want to remove only leading or trailing spaces, use lstrip[] or rstrip[] function instead.