使用 `expl3` 的正则表达式

使用 `expl3` 的正则表达式

有人能解释一下这些正则表达式的用法expl3和工作原理吗?

\regex_replace_all:nnN { a\-(ai) } { \1 } \l_mytrans_tl
\regex_replace_all:nnN { a\-(au) } { \1 } \l_mytrans_tl
\regex_replace_all:nnN { a\-([āiueoīū]{1}) } { \1 } \l_mytrans_tl
\regex_replace_all:nnN { a\-(rr) } { \1 } \l_mytrans_tl
\regex_replace_all:nnN { a\-(r) } { \1 } \l_mytrans_tl
\regex_replace_all:nnN { \-([āiueoīū]{1}) } { \1 } \l_mytrans_tl

特别是最后一个。我不明白这一点。

答案1

最后一行应该替换为 by ā-iby i-ubyu等等。

具体来说:

  • \-代表字符-
  • 接下来,括号中的所有内容(...)都是应该用于替换的字符串的部分。
  • 接下来是一个用方括号括起来的组[...],其本质意思是“其中之一”。
  • 跟在重复标记后面{1},表示“恰好一次”之前的字符或组。
  • 至于替换,\1选择字符串的第一个部分,即括号中的第一个部分,在本例中(...)就是如此。[āiueoīū]{1}

因此,这意味着用这个字符替换-后跟 的其中一个字符āiueoīū,但只能替换其中一个字符。本质上,它删除了-

查看文档l3regex包当前包含在 LaTeX3 接口文档 (第 8 章) 中。

相关内容