Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,954 questions

51,896 answers

573 users

How to remove the last n occurrences of a substring in a string in Python

1 Answer

0 votes
def remove_last_n(s: str, sub: str, n: int) -> str:
    positions = []
    start = 0

    # Find all occurrences
    while True:
        pos = s.find(sub, start)
        if pos == -1:
            break
        positions.append(pos)
        start = pos + len(sub)

    # Remove from the end
    s_list = list(s)
    for pos in reversed(positions):
        if n == 0:
            break
        del s_list[pos:pos + len(sub)]
        n -= 1

    return "".join(s_list)


def remove_extra_spaces(s: str) -> str:
    # Split on any whitespace, rejoin with single spaces
    return " ".join(s.split())


text = "abc xyz xyz abc xyzabcxyz abc"

result = remove_last_n(text, "xyz", 3)
print(result)

cleaned = remove_extra_spaces(result)
print(cleaned)



'''
run:

abc xyz  abc abc abc
abc xyz abc abc abc

'''

 



answered 2 hours ago by avibootz

Related questions

...