# How to replace all the derivatives of a particular function?

For a given expression, such as:

exp=p[x]+p'[x]+p''[x]...Derivative[n][p][x]


I want to replace all the derivatives of p[x] to a constant 1. But the following rule:

rule=Derivative[_][p][x]:>1


works for the derivatives when n>=1, except p[x]. That is:

p'[x]/.rule
(* output: 1 *)

p''[x]/.rule
(* output: 1 *)

p[x]/.rule
(* output: p[x] *)


I wonder what is the correct rule to replace all the Derivative[n][p][x] to 1, including p[x].

Thank you.

• It's not elegant, but works: rule={Derivative[_][p][x] :> 1, p[x] :> 1} – Oscillon Apr 26 at 15:56
• @Oscillon there are almost 15 rules... so this solution will double the input work. Oh... we do need some solution to reduce our labour. – PureLine Apr 26 at 15:59
• Try rule = p[x] | Derivative[_][p][x] :> 1. – Somos Apr 26 at 16:55
• If you need it to be more general (i.e. you need to set every derivative to 1), then you can use a variation of @Somos's suggestion: rule = _[x] | Derivative[_][_][x] :> 1` or something there-abouts. – march Apr 26 at 17:01
• Duplicate of mathematica.stackexchange.com/q/194099 ? – Roman Apr 26 at 17:15