有人能解释一下这些正则表达式的用法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 ā
、-i
by i
、-u
byu
等等。
具体来说:
\-
代表字符-
。- 接下来,括号中的所有内容
(...)
都是应该用于替换的字符串的部分。 - 接下来是一个用方括号括起来的组
[...]
,其本质意思是“其中之一”。 - 跟在重复标记后面
{1}
,表示“恰好一次”之前的字符或组。 - 至于替换,
\1
选择字符串的第一个部分,即括号中的第一个部分,在本例中(...)
就是如此。[āiueoīū]{1}
因此,这意味着用这个字符替换-
后跟 的其中一个字符āiueoīū
,但只能替换其中一个字符。本质上,它删除了-
。
查看文档该l3regex
包当前包含在 LaTeX3 接口文档 (第 8 章) 中。