Here's another with l3regex
.
\documentclass{scrartcl}\usepackage{xcolor,xparse,l3regex}\ExplSyntaxOn\NewDocumentCommand \texthighlight { +m } { \david_texthighlight:n { #1 } }\cs_new_protected:Npn \david_texthighlight:n #1 { \group_begin: \tl_set:Nn \l_tmpa_tl { #1 } \seq_map_inline:Nn \g_david_highlight_colors_seq { \clist_map_inline:cn { g_david_highlight_##1_clist } { \regex_replace_all:nnN { (\W)####1(\W) } { \1\c{textcolor}\cB\{##1\cE\}\cB\{####1\cE\}\2 } \l_tmpa_tl } } \tl_use:N \l_tmpa_tl \group_end: }\seq_new:N \g_david_highlight_colors_seq\NewDocumentCommand \addhighlighting { O{red} m } { \seq_if_in:NnF \g_david_highlight_colors_seq { #1 } { \seq_gput_right:Nn \g_david_highlight_colors_seq { #1 } } \clist_if_exist:cF { g_david_highlight_#1_clist } { \clist_new:c { g_david_highlight_#1_clist } } \clist_gput_right:cn { g_david_highlight_#1_clist } { #2 } }\ExplSyntaxOff\addhighlighting{amet,Mauris,ut,et,leo}\addhighlighting[blue]{Phasellus,vestibulum}\begin{document}\texthighlight{Lorem ipsum dolor foo sit amet, bar consectetuer adipiscingelit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget,consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus etmalesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metusrhoncus sem. Nulla et lectus foo vestibulum urna fringilla ultrices.Phasellus eu tellus sit amet tortor gravida placerat. Integer sapienest, iaculis in, pretium quis, viverra ac, nunc. Praesent eget semvel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla,malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor sempernulla. Donec varius orci eget risus. Duis nibh mi, congue eu,accumsan eleifend, bar sagittis quis, diam. Duis eget orci sit amet orcidignissim rutrum.Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Utpurus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabiturdictum gravida mauris. Nam arcu libero, nonummy eget,consectetuer id, foo vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus etmalesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metusrhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices.Phasellus eu tellus sit amet tortor gravida placerat. Integer sapienest, iaculis in, pretium quis, viverra ac, bar nunc. Praesent eget semvel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla,malesuada eu, pulvinar at, mollis ac, nulla. Curabitur auctor sempernulla. Donec varius orci eget risus. Duis nibh mi, congue eu,accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orcidignissim rutrum.}\end{document}