I am aware of the following:
xesearch - Allows both text and command substitution. Only for XeLaTeX
Simple example:
\usepackage{xesearch}
\SearchList{list1}{Hello}}{hlw}
Any time "hlw" is present in an XeLaTex document it will be expanded into "Hello". A command can be used in place of "Hello" and will work in most cases.
abbrevs - Allows text replacement. I do not think it will do command substitution. To my knowledge LaTeX and LuaLaTeX
Simple example:
\usepackage{abbrevs)
\newabbrev\hlw{Hello}
Any time "hlw" is present in a LaTeX or LuaLaTeX document it will be expanded into "Hello".
chickenize - Through its "substitutewords" function. Not sure about command substitution. The documentation identifies it as a LuaTeX/LuaLaTeX solution only. It will also replace every word in your document with "chicken" should you desire to "chickenize" your document.
xstring - ?
l3regex -
stringstrings - ?
luacode - Allows for both text and command substitution. It provides macros (e.g., \luaexec and \luastring) and environments (e.g., luacode and luacode*) that allow the programmer to create Lua functions that have full access to Lua's powerful string library. Of course only LuaLaTeX. Thanks to Mico for his below answer and example of both text and command substitution.
What other substitutions packages exist?
For each, is it just for text, or can commands be substituted?
In which TeX variant can the package be used?
What would a simple example look like in each package?
Related: Automatically format words in a PDFLaTeX document which are in a keyword list
Related: space-after-latex-commands

l3regex– David Carlisle Jan 27 '16 at 18:44