pdfTeX 的正则表达式

pdfTeX 的正则表达式

如何使用\pdfmatch正则表达式,在哪里可以找到所有可用 pdfTeX 原语的列表和说明以及有关它们的使用的帮助?

编辑

pdfTeX 文档的最新一期现在包含该命令的简短描述和示例。

答案1

参见 pdftex 1.30.0公告, 尤其:

  - \pdfmatch [icase] [subcount <number>}] {<pattern>}{<string>}
    Implements pattern matching using the POSIX regex.
    It returns the same values as \pdfstrcmp, but with the following
    semantics: 
      -1: error case (invalid pattern, ...)
       0: no match
       1: match found
    Options:
    * icase: case insensitive matching
    * subcount: it sets the table size for found subpatterns.
      A number "-1" resets the table size to the start default.
  - \pdflastmatch <number>
    The result of \pdfmatch is stored in an array. The entry "0" contains
    the match, the following entries submatches. The positions of the
    matches are also available. They are encoded:
      <position> "->" <match string>
    The position "-1" with an empty string indicates that this entry is not
    set.

答案2

具体来说,对于正则表达式,该l3regex包提供了一个跨引擎解决方案(需要 eTeX 和\strcmp)。

例如,

\RequirePackage{l3regex}
\ExplSyntaxOn
\regex_extract_all:nnN { \w+ } { Hello,~ world! } \l_foo_seq
\seq_show:N \l_foo_seq

显示Helloworld作为结果序列(列表)的两个项目。

以下是各种问题的列表,其中一个答案使用l3regex

相关内容