\documentclass{article} % or any other
\ExplSyntaxOn
\NewDocumentCommand{\getchunk}{smm}
{% #1 = optional * (when a command is used for #2
% #2 = string
% #3 = item number
\IfBooleanTF{#1}
{
\seq_set_split:NnV \l_tmpa_seq { ~ } #2
}
{
\seq_set_split:Nnn \l_tmpa_seq { ~ } { #2 }
}
\seq_item:Nn \l_tmpa_seq { #3 }
}
\ExplSyntaxOff
\newcommand{\MyTeXKnowledge}{Not good enough}
\begin{document}
\getchunk*{\MyTeXKnowledge}{2}
\getchunk{Not good enough}{3}
\end{document}

We might add a check that there are enough chunks.
\documentclass{article} % or any other
\ExplSyntaxOn
\NewDocumentCommand{\getchunk}{smm}
{% #1 = optional * (when a command is used for #2
% #2 = string
% #3 = item number
\IfBooleanTF{#1}
{
\rigel_getchunk:Vn #2 { #3 }
}
{
\rigel_getchunk:nn { #2 } { #3 }
}
}
\cs_new_protected:Nn \rigel_getchunk:nn
{
\seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
\int_compare:nTF { #2 > \seq_count:N \l_tmpa_seq }
{
??? \ERROR
}
{
\seq_item:Nn \l_tmpa_seq { #2 }
}
}
\cs_generate_variant:Nn \rigel_getchunk:nn { V }
\ExplSyntaxOff
\newcommand{\MyTeXKnowledge}{Not good enough}
\begin{document}
\getchunk*{\MyTeXKnowledge}{2}
\getchunk{Not good enough}{3}
\getchunk*{\MyTeXKnowledge}{100}
\end{document}

Also
! Undefined control sequence.
<argument> ???\ERROR
would be raised.
\ExplSyntaxOnis not available for me; maybe because I am using:pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013)kpathsea version 6.1.1Unfortunately, I cannot update it by myself...
– Rigel F. do C. Mar 27 '24 at 12:13