The tokcycle package is designed to cycle through input tokens, and take actions based on whether the token is a "character", a group, a macro/command sequence, or a space.
The directives allow one to apply conditional tests to the token to achieve the desired output. Here I place parens around every character token, except for e, which I make bold. If a macro is \today, it is set in italic, if it is \textbackslash, it is \fboxed---otherwise it is merely echoed to the output. Spaces are converted to \textvisiblespaces, while also allowing for line breaks.
Notably, the token cycle can work its way into group content, unless one wishes that to be purposely precluded. It is shown below in its pseudo-environment form, but has macro forms, as well.
\documentclass{article}
\usepackage{tokcycle}
\begin{document}
\tokencycle
{\ifx e#1\addcytoks{\textbf{#1}}\else\addcytoks{(#1)}\fi}%
{\processtoks{#1}}%
{\ifx\today#1\addcytoks{\textit{#1}}\else
\ifx\textbackslash#1\addcytoks{\fbox{#1}}\else\addcytoks{#1}\fi\fi}%
{\addcytoks{\textvisiblespace\allowbreak}}%
These are \underline{difficult times}, \today{} of all days!
Note that I seek out instances of \textbackslash today in order to make
it italic. Paragraphs are not a problem.
\endtokencycle
\end{document}

\ifx\nextchat\textbackslashbecause\textbackslashalmost never occurs as a token in the TeX code. Tokenizer interprets backslash with very special manner (with its default setting) and almost never generates single token backslash. – wipet Apr 14 '20 at 16:42