Reemplazo de palabras específicas en una cadena (Python)

Me gustaría reemplazar palabras en una oración de cadena como:

What $noun$ is $verb$? 

¿Cuál es la expresión regular para reemplazar los caracteres en ‘$ $’ (inclusive) con sustantivos / verbos reales?

No necesitas una expresión regular para eso. yo lo haría

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

Sólo use expresiones regulares cuando sea necesario. Generalmente es más lento.

Dado que tiene la libertad de modificar $noun$ etc. a su gusto, la mejor práctica para hacer esto hoy en día es probablemente usar la función de format en una cadena:

 "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$?'