Reputation: 179
Suppose I have a string
the_string = "the brown fox"
And I wan't to replace the spaces with a number of characters, for example, 5 dash marks
new_string = "the-----brown-----fox"
but this will be a variable, so i cant just do:
the_string = 'the brown fox'
new_string = re.sub(r'\s', '-----', the_string)
I need something like the following:
the_string = 'the brown fox'
num_dashes = 5
new_string = re.sub(r'\s', r'-{num_dashes}', the_string)
Is something like this possible?
Upvotes: 3
Views: 2156
Reputation: 766
Yes, you can do this:
the_string = 'the brown fox'
num_dashes = 5
re.sub(r'\s', '-'*num_dashes, the_string)
Upvotes: 3
Reputation: 67968
def repl(matchobj):
if matchobj.group():
#do something
#return whatever you want to replace
my_str = "the brown fox"
pattern = r"\s+"
print re.sub(pattern, repl, my_str)
You can define a function in re.sub
Upvotes: 2