76

I used regular expressions to get a string from a web page and part of the string may contain something I would like to replace with something else. How would it be possible to do this? My code is this, for example:

stuff = "Big and small"
if stuff.find(" and ") == -1:
    # make stuff "Big/small"
else:
    stuff = stuff
0

4 Answers 4

113
>>> stuff = "Big and small"
>>> stuff.replace(" and ","/")
'Big/small'
Sign up to request clarification or add additional context in comments.

Comments

21

Use the replace() method on string:

>>> stuff = "Big and small"
>>> stuff.replace( " and ", "/" )
'Big/small'

Comments

12

You can easily use .replace() as also previously described. But it is also important to keep in mind that strings are immutable. Hence if you do not assign the change you are making to a variable, then you will not see any change. Let me explain by;

    >>stuff = "bin and small"
    >>stuff.replace('and', ',')
    >>print(stuff)
    "big and small" #no change

To observe the change you want to apply, you can assign same or another variable;

    >>stuff = "big and small"
    >>stuff = stuff.replace("and", ",")   
    >>print(stuff)
    'big, small'

Comments

1

For simple replacements, str.replace() works fine!

But for multiple replacements or more flexible patterns, use re.sub():

import re

stuff = "Big and small & tiny or huge"
stuff = re.sub(r" and | & | or ", "/", stuff)
# 'Big/small/tiny/huge'

This allows you to:

  • Replace multiple patterns at once

  • Use regex for complex matches

  • Scale better than chaining .replace()

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.