l3regex

为什么这个 \regex_split:nnN 会导致错误并插入“{”?
l3regex

为什么这个 \regex_split:nnN 会导致错误并插入“{”?

我正在expl3尝试一些高阶编程。在此示例中,我定义了一个环境,然后对该环境执行了一项操作: \documentclass{article} \usepackage[T1]{fontenc} \usepackage{expl3} \usepackage{amsmath, amssymb} \begin{document} \ExplSyntaxOn \prop_new:N \l_files_prop \newcommand{\addConfig}[2]{ \prop_put:Nnn \l_files_prop {#1} {{#2}} } \new...

Admin

使用 l3 正则表达式,如何捕获命令并将其替换为其名称?
l3regex

使用 l3 正则表达式,如何捕获命令并将其替换为其名称?

我有一个包含命令的 clist 形式的输入,例如{\my_cmd1,\my_xx_cmd2,\cmd3}。我首先遍历此列表并删除逗号、反斜杠\等。 我将输出保存在 |tl| 中。我想删除下划线“_”,但由于失败,我尝试使用正则表达式。这几乎适用于所有情况,也许是一种更好的方法。我怎样才能删除\使用正则表达式并只保留命令的名称? \documentclass{article} \usepackage{xcolor} \begin{document} \makeatletter \ExplSyntaxOn \cs_set:Npn\my_remove_back...

Admin

expl3 的 regex_replace_all 对德语 ß 有问题,为什么?
l3regex

expl3 的 regex_replace_all 对德语 ß 有问题,为什么?

编辑:解决方案这下面的问题。 我正在尝试在文本中直接替换整个单词,但似乎使用regex_replace_all无法正常工作,因为它找不到以 ß 结尾的单词。 我不想用“s 表示 ß在要替换的文本中,尽管这有效! 作为 MWE: \documentclass{article} \usepackage[utf8]{inputenc} \ExplSyntaxOn \newcommand{\replaceText}[1]{% \f_replace_text:n { #1 } } \tl_new:N \l_replace_text_tl \tl_new:N...

Admin

l3regex - 逐行分割
l3regex

l3regex - 逐行分割

我想逐行分析环境的内容,但是以下简约的测试代码因“打印”而失败false。 \documentclass{article} \ExplSyntaxOn \NewDocumentEnvironment{linebyline}{b}{ \seq_new:N \l_temp_seq \regex_split:nnNTF { \n } { #1 } \l_tmpa_seq { true } { false } }{} \ExplSyntaxOff \begin{document} \begin{linebyl...

Admin

如何向“\clist_map_function”传递多个参数?
l3regex

如何向“\clist_map_function”传递多个参数?

我尝试使用clist来作为函数的参数。然而,一个参数还可以包含函数的其他可选参数。 我怎样才能做到这一点? \documentclass{article} \ExplSyntaxOn \cs_generate_variant:Nn \regex_extract_all:nnN { nx } \seq_new:N \l__ghs_tmpA_seq \seq_new:N \l__ghs_tmpB_seq \NewDocumentCommand{\HPsatz}{mO{}O{}}{ \regex_extract_all:nxN {([HP+\d]*...

Admin

l3regex:匹配和替换时跳过数学公式
l3regex

l3regex:匹配和替换时跳过数学公式

在进行正则表达式匹配和替换时是否可以以某种方式跳过数学公式? 例如,在下面的代码中,\ProcessText定义了一个命令,将 周围的文本转换为*标记,就像在 Markdown 中一样。然而,*在数学模式下,这可能会导致错误。 \documentclass{article} \ExplSyntaxOn \NewDocumentCommand \ProcessText { m } { \tl_set:Nn \l_tmpa_tl { #1 } \regex_replace_all:nnN { \*\*\* (.*?) \*\*...

Admin

expl3:多次匹配正则表达式模式
l3regex

expl3:多次匹配正则表达式模式

我想匹配>>字符串中的模式“start with ”,并用命令替换它;如果>>出现多个,它应该匹配并替换多次。 例如,给定字符串aaa>>bbb>>ccc,我想将其转换为aaa\somecommand{bbb}\somecommand{ccc}。我的想法是使用\regex_replace_all:nnN,但我似乎找不到正确的正则表达式模式:例如,>>(.*)只会匹配此字符串一次。如何正确实现这一点? 以下是 MWE: \documentclass{article} \begin{document} ...

Admin

将以 >> 开头的行转换为居中文本
l3regex

将以 >> 开头的行转换为居中文本

这实际上是一个后续问题/真正的问题先前这个问题。 我想将以 开头的文本转换为>>居中文本。 这个看似愚蠢的目的的动机是为我的包添加一种新的语法jwjournal,这样像这样的行>> (some remark)就会转换成居中的注释。 假设要解析的字符串已经存储在一个标记列表中\l_jwjournal_tmp_tl。目标是识别>>并使其后的文本居中。但是,如果>>发现多个,则应分别居中相应的文本。因此,例如,如果的内容\l_jwjournal_tmp_tl是aaa>>bbb>>ccc...

Admin

调用 \regex_match 时遇到问题
l3regex

调用 \regex_match 时遇到问题

这按预期工作: \documentclass{minimal} \ExplSyntaxOn % USE X instead of \space for a space. \catcode`\X=\active \defX{\space } % \mycheck:nnn <regex> <string to test against regex> <end of error message> \cs_set:Npn \mycheck:nnn #1#2#3 { \regex_match:nnT...

Admin

如何匹配不包含子字符串的字符串?
l3regex

如何匹配不包含子字符串的字符串?

我需要一个正则表达式来匹配以 开头、以 结尾且不包含 的\regex_replace_all字符串。这个不起作用:ABCBC \documentclass{article} \begin{document} \ExplSyntaxOn \tl_set:Nn\foo{foo A xxxx B bar} \regex_replace_all:nnN { A ((?!CBC).)+ B }{ replaced } \foo \foo \ExplSyntaxOff \end{document} 我希望它能渲染foo replaced bar。但是,没有发生替换。据...

Admin

l3regex 正则表达式整体匹配
l3regex

l3regex 正则表达式整体匹配

我承认我对正则表达式还不熟悉。该l3regex模块有一个函数\regex_match:,用于测试正则表达式(第一个参数)是否与标记列表(第二个参数)的任何部分匹配。我很好奇是否有一个函数可以测试正则表达式是否与整个标记列表匹配,而不是部分子匹配。 例如,假设我有一个函数,用于测试输入的形式是恰好 1 位数字还是恰好 2 位数字。据我所知,我的第一个示例函数将正确测试这是否正确,但我觉得这应该更容易。(ERROR只是一个占位符错误消息。)不幸的是,我的第二个示例函数将设置正则表达式匹配至少有 1 位数字的任何标记列表,即使标记列表不能包含任何非数字(例如字母)...

Admin

如何使“聚集”与我对文本的自定义处理一起实现?
l3regex

如何使“聚集”与我对文本的自定义处理一起实现?

这是无法编译的代码: \documentclass{article} \usepackage{amsmath} \ExplSyntaxOn \cs_generate_variant:Nn \tl_replace_all:Nnn {Nx} \NewDocumentEnvironment{foo}{+b} {\tl_set:Nn\l__foo_tmp_tl{#1}} {\regex_replace_all:nnN {e}{X} \l__foo_tmp_tl \l__foo_tmp_tl} \ExplSyntaxOff \begin{document}...

Admin

如何创建一个查找和替换文本模式的新环境?
l3regex

如何创建一个查找和替换文本模式的新环境?

我正在尝试创建一个环境,它可以查找并替换其主体中的某些模式,并且不会与可能包含它的其他环境发生冲突。一种可能的使用场景可能如下所示: \documentclass{article} \usepackage{amsmath} \begin{document} \begin{gather} \begin{foo} a -> b \\ c -> \LaTeX \end{foo} \end{gather} \end{document} 在这里,我的foo环境应该用 替换->(\to在我的实际情况下,我有更多模式)。另一种可能的用法,这次没有gat...

Admin

如何从 LaTex 正则表达式匹配中获取组?
l3regex

如何从 LaTex 正则表达式匹配中获取组?

\documentclass{article} \usepackage{hyperref} \usepackage{expl3} \hypersetup{ colorlinks=true, linkcolor=blue, filecolor=magenta, urlcolor=cyan, pdftitle={Overleaf Example}, pdfpagemode=FullScreen, } \ExplSyntaxOn \NewDocumentCommand{\curl}{m}{ ...

Admin

为什么 expl3 与“gather”环境冲突?
l3regex

为什么 expl3 与“gather”环境冲突?

这段代码运行良好: \documentclass{article} \usepackage{filecontentsdef} \usepackage{expl3} \ExplSyntaxOn \cs_generate_variant:Nn \tl_replace_all:Nnn {Nx} \makeatletter \NewDocumentEnvironment{foo}{} {\filecontentsdefmacro\l__foo_tmp_tl} {\endfilecontentsdefmacro% \str_set:NV \l__foo_t...

Admin