如何最好地分割长字符串?

如何最好地分割长字符串?

我想对\StrSplit我拥有的字符串做一个简单的操作(来自 xstring 包),但是,所讨论的字符串可能包含一个\par,并且看起来\@xs@StrSpl@t@@,我只能想象它是一个内部 xstring 宏,不是一个长宏,所以它会导致错误。

\par有什么解决方法吗?其他具有类似功能的软件包可以接受长字符串吗?暂时删除然后再放回去的方法是什么?

编辑:我实际上只需要分离第一个字符,因此如果有办法直接在任意字符串上执行此操作(具有的语义\noexpand),那么这也可以行得通。

答案1

您可以尝试这样做来获取第一个字符:

\documentclass{article}
\begin{document}

\makeatletter
\long\def\test#1{%
  \long\def\getfirstchar##1##2;{%
  \def\storeone{##1}
}
 \getfirstchar#1;
}
\makeatother


\test{This is \par something}

\storeone
\end{document}

该宏获取第一个字母并将其存储到另一个名为的宏中,storeone.我不确定您到底想做什么,除了获取第一个字母之外,也许您可​​以稍微扩展一下您的问题。您也可以查看source2e,有类似的命令,例如\@firstoftwo

相关内容