Bird
Raised Fist0
Pythonprogramming~5 mins

Searching and replacing text in Python

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Sometimes you want to find certain words or parts in a text and change them to something else. This helps fix mistakes or update information quickly.

Fixing typos in a document automatically.
Changing a name or date in many places in a text.
Updating old words to new ones in a story or article.
Removing unwanted characters from user input.
Syntax
Python
new_text = original_text.replace('old', 'new')

The replace method creates a new string; it does not change the original text.

You can replace all occurrences or limit how many to replace by adding a third numeric argument.

Examples
This changes 'cats' to 'dogs' in the sentence.
Python
text = 'I like cats'
new_text = text.replace('cats', 'dogs')
print(new_text)
This replaces only the first two 'hello' words with 'hi'.
Python
text = 'hello hello hello'
new_text = text.replace('hello', 'hi', 2)
print(new_text)
This removes all dashes from the phone number.
Python
text = '123-456-7890'
new_text = text.replace('-', '')
print(new_text)
Sample Program

This program shows how to find the word 'fox' and replace it with 'cat'. It prints both the original and the changed sentence.

Python
original = 'The quick brown fox jumps over the lazy dog.'
changed = original.replace('fox', 'cat')
print('Original:', original)
print('Changed:', changed)
OutputSuccess
Important Notes

Remember, strings in Python cannot be changed directly; replace returns a new string.

If the word to replace is not found, the original string stays the same.

You can chain multiple replace calls to change several words.

Summary

Use replace to find and change parts of text easily.

It returns a new string and does not modify the original.

You can control how many replacements happen with an optional number.

Practice

(1/5)
1. What does the replace method do in Python strings?
easy
A. It finds a specified substring and replaces it with another substring.
B. It deletes a substring from the string permanently.
C. It changes the original string directly without creating a new one.
D. It counts how many times a substring appears in the string.

Solution

  1. Step 1: Understand the purpose of replace()

    The replace method searches for a substring and replaces it with another substring.
  2. Step 2: Check if it modifies original string

    Strings are immutable in Python, so replace returns a new string without changing the original.
  3. Final Answer:

    It finds a specified substring and replaces it with another substring. -> Option A
  4. Quick Check:

    replace() = find and change substring [OK]
Hint: Remember: replace returns new string, original stays same [OK]
Common Mistakes:
  • Thinking replace changes the original string
  • Confusing replace with delete or count methods
  • Assuming replace modifies in-place
2. Which of the following is the correct syntax to replace all occurrences of 'cat' with 'dog' in a string text?
easy
A. text.replace('cat', 'dog', all=True)
B. text.replace('cat', 'dog')
C. text.replace('cat' -> 'dog')
D. text.replace('cat', 'dog', count=0)

Solution

  1. Step 1: Recall replace() syntax

    The correct syntax is string.replace(old, new[, count]), where old and new are strings.
  2. Step 2: Analyze options

    text.replace('cat', 'dog') matches the correct syntax. Options A, B, and D use invalid syntax or parameters.
  3. Final Answer:

    text.replace('cat', 'dog') -> Option B
  4. Quick Check:

    replace(old, new) syntax = text.replace('cat', 'dog') [OK]
Hint: Use replace(old, new) without extra keywords [OK]
Common Mistakes:
  • Using arrows or keywords inside replace()
  • Adding unsupported parameters like all=True
  • Confusing parameter order
3. What will be the output of this code?
text = 'apple apple apple'
new_text = text.replace('apple', 'orange', 2)
print(new_text)
medium
A. 'apple orange orange'
B. 'orange orange orange'
C. 'orange orange apple'
D. 'apple apple orange'

Solution

  1. Step 1: Understand replace with count

    The third argument 2 limits replacements to first two occurrences.
  2. Step 2: Apply replacements

    First two 'apple' become 'orange', last remains 'apple'. Result: 'orange orange apple'.
  3. Final Answer:

    'orange orange apple' -> Option C
  4. Quick Check:

    replace with count=2 changes first two only [OK]
Hint: Count limits how many replacements happen [OK]
Common Mistakes:
  • Replacing all occurrences ignoring count
  • Replacing from the end instead of start
  • Miscounting number of replacements
4. The following code tries to replace 'blue' with 'red' but causes an error. What is the error?
text = 'blue sky'
text.replace('blue', 'red', 'all')
print(text)
medium
A. SyntaxError due to wrong quotes
B. AttributeError because replace is not a string method
C. No error, prints 'red sky'
D. TypeError because 'all' is not an integer for count

Solution

  1. Step 1: Check replace() parameters

    The third parameter must be an integer count, but 'all' is a string.
  2. Step 2: Identify error type

    Passing a string instead of int causes a TypeError at runtime.
  3. Final Answer:

    TypeError because 'all' is not an integer for count -> Option D
  4. Quick Check:

    replace count must be int, not string [OK]
Hint: Count parameter must be integer, not string [OK]
Common Mistakes:
  • Using strings instead of integers for count
  • Expecting replace to modify original string
  • Confusing error types
5. You have a paragraph stored in text. You want to replace only the first 3 occurrences of the word 'error' with 'issue'. Which code snippet correctly does this?
hard
A. new_text = text.replace('error', 'issue', 3)
B. new_text = text.replace('error', 'issue', count=3)
C. new_text = text.replace('error', 'issue', '3')
D. new_text = text.replace('error', 'issue')[:3]

Solution

  1. Step 1: Use replace with count parameter

    To replace only first 3 occurrences, use replace(old, new, count) with count=3.
  2. Step 2: Analyze options

    new_text = text.replace('error', 'issue', 3) uses correct syntax. new_text = text.replace('error', 'issue', count=3) uses invalid keyword argument. new_text = text.replace('error', 'issue', '3') passes count as string. new_text = text.replace('error', 'issue')[:3] slices string incorrectly.
  3. Final Answer:

    new_text = text.replace('error', 'issue', 3) -> Option A
  4. Quick Check:

    replace(old, new, 3) replaces first 3 only [OK]
Hint: Use third argument as integer count for limited replacements [OK]
Common Mistakes:
  • Using keyword count instead of positional argument
  • Passing count as string instead of int
  • Trying to slice string after replace