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?
You don't need a regular expression for that. I would do
string = "What $noun$ is $verb$?"
print string.replace("$noun$", "the heck")
Only use regular expressions when needed. It's generally slower.
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")
In [1]: import re
In [2]: re.sub('\$noun\$', 'the heck', 'What $noun$ is $verb$?')
Out[2]: 'What the heck is $verb$?'
use a dictionary to hold the regular expression pattern and value. use the re.sub to replace the tokens.
dict = {
"(\$noun\$)" : "ABC",
"(\$verb\$)": "DEF"
}
new_str=str
for key,value in dict.items():
new_str=(re.sub(key, value, new_str))
print(new_str)
output:
What ABC is DEF?