从标记列表中提取子字符串

从标记列表中提取子字符串

如何从非显式标记列表中提取子字符串?

\documentclass{article}
\usepackage{expl3}

\begin{document}

\ExplSyntaxOn

\tl_new:N \l_my_tl
\seq_new:N \l_my_seq

\tl_set:Nn \l_my_tl { foot }

\regex_extract_once:nnNTF { foo } { foot }
  \l_my_seq
  { true }
  { false }

\par

\regex_extract_once:nnNTF { foo } { \l_my_tl }
  \l_my_seq
  { true }
  { false }

\end{document}

第一个提取命令有一个明确的“脚”并且成功了;我希望第二个命令也能如此,扩展\t_my_tl,但事实并非如此。输出:

true
false

答案1

你必须使用价值标记列表变量:

\documentclass{article}
\usepackage{expl3}

\begin{document}

\ExplSyntaxOn

\tl_new:N \l_my_tl
\seq_new:N \l_my_seq

\cs_generate_variant:Nn \regex_extract_once:nnNTF { nV }

\tl_set:Nn \l_my_tl { foot }

\regex_extract_once:nnNTF { foo } { foot }
  \l_my_seq
  { true }
  { false }

\par

\regex_extract_once:nVNTF { foo } \l_my_tl
  \l_my_seq
  { true }
  { false }

\end{document}

这将打印

真的
真的

相关内容