Replacing specific words in a string (Python)

2020-01-27 06:56发布

问题:

I would like to replace words in a string sentence such as:

What $noun$ is $verb$?

What's the regular expression to replace the characters in '$ $' (inclusive) with actual nouns/verbs?

回答1:

You don't need a regular expression for that. I would do

str = "What $noun$ is $verb$?"
print str.replace("$noun$", "the heck")

Only use regular expressions when needed. It's generally slower.



回答2:

Given that you are free to modify $noun$ etc. to your liking, best practise to do this nowadays is probably to using the format function on a string:

"What {noun} is {verb}?".format(noun="XXX", verb="YYY")


回答3:

In [1]: import re

In [2]: re.sub('\$noun\$', 'the heck', 'What $noun$ is $verb$?')
Out[2]: 'What the heck is $verb$?'