Hướng dẫn before string in python

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.

Chủ Đề