Parle 支持类似于 flex 的正则表达式匹配。还支持以下 POSIX 字符集:[:alnum:]
, [:alpha:]
, [:blank:]
, [:cntrl:]
, [:digit:]
, [:graph:]
, [:lower:]
, [:print:]
, [:punct:]
, [:space:]
, [:upper:]
, [:xdigit:]
.
Unicode 字符类目前默认情况下不可用,请传递 --enable-parle-utf32 使它们可用。可以使用正确构造的正则表达式映射特定编码。例如,要匹配以 UTF-8 编码的欧元符号,可以使用正则表达式 [\xe2][\x82][\xac]
。UTF-8 编码字符串的模式可以是 [ -\x7f]{+}[\x80-\xbf]{+}[\xc2-\xdf]{+}[\xe0-\xef]{+}[\xf0-\xff]+
.
序列 | 描述 |
---|---|
\a | 警报(铃声)。 |
\b | 退格。 |
\e | ESC 字符,\x1b。 |
\n | 换行。 |
\r | 回车。 |
\f | 换页,\x0c。 |
\t | 水平制表符,\x09。 |
\v | 垂直制表符,\x0b。 |
\oct | 由三位八进制代码指定的字符。 |
\xhex | 由十六进制代码指定的字符。 |
\cchar | 命名控制字符。 |
序列 | 描述 |
---|---|
[...] | 列出的单个字符或包含在列出的范围内。范围可以使用 {+} 和 {-} 运算符组合。例如 [a-z]{+}[0-9] 等同于 [0-9a-z] ,而 [a-z]{-}[aeiou] 等同于 [b-df-hj-np-tv-z] . |
[^...] | 未列出的单个字符,也不包含在列出的范围内。 |
. | 任何字符,默认为 [^\n]. . |
\d | 数字字符,[0-9] . |
\D | 非数字字符,[^0-9] . |
\s | 空白字符,[ \t\n\r\f\v] . |
\S | 非空白字符,[^ \t\n\r\f\v] . |
\w | 单词字符,[a-zA-Z0-9_] . |
\W | 非单词字符,[^a-zA-Z0-9_] . |
序列 | 描述 |
---|---|
\p{C} | 其他。 |
\p{Cc} | 其他,控制。 |
\p{Cf} | 其他,格式。 |
\p{Co} | 其他,专用。 |
\p{Cs} | 其他,代理。 |
\p{L} | 字母。 |
\p{LC} | 字母,大小写。 |
\p{Ll} | 字母,小写。 |
\p{Lm} | 字母,修饰符。 |
\p{Lo} | 字母,其他。 |
\p{Lt} | 字母,标题大小写。 |
\p{Lu} | 字母,大写。 |
\p{M} | 标记。 |
\p{Mc} | 标记,空格组合。 |
\p{Me} | 标记,封闭。 |
\p{Mn} | 标记,非空格。 |
\p{N} | 数字。 |
\p{Nd} | 数字,十进制数字。 |
\p{Nl} | 数字,字母。 |
\p{No} | 数字,其他。 |
\p{P} | 标点符号。 |
\p{Pc} | 标点符号,连接符。 |
\p{Pd} | 标点符号,破折号。 |
\p{Pe} | 标点符号,关闭。 |
\p{Pf} | 标点符号,结束引号。 |
\p{Pi} | 标点符号,开始引号。 |
\p{Po} | 标点符号,其他。 |
\p{Ps} | 标点符号,打开。 |
\p{S} | 符号。 |
\p{Sc} | 符号,货币。 |
\p{Sk} | 符号,修饰符。 |
\p{Sm} | 符号,数学。 |
\p{So} | 符号,其他。 |
\p{Z} | 分隔符。 |
\p{Zl} | 分隔符,行。 |
\p{Zp} | 分隔符,段落。 |
\p{Zs} | 分隔符,空格。 |
这些字符类仅在编译时传递了选项 --enable-parle-utf32 时才可用。
序列 | 贪婪 | 描述 |
---|---|---|
...|... | - | 尝试交替中的子模式。 |
* | 是 | 匹配 0 次或多次。 |
+ | 是 | 匹配 1 次或多次。 |
? | 是 | 匹配 0 次或 1 次。 |
{n} | 否 | 精确匹配 n 次。 |
{n,} | 是 | 至少匹配 n 次。 |
{n,m} | 是 | 至少匹配 n 次,但不超过 m 次。 |
*? | 否 | 匹配 0 次或多次。 |
+? | 否 | 匹配 1 次或多次。 |
?? | 否 | 匹配 0 次或 1 次。 |
{n,}? | 否 | 至少匹配 n 次。 |
{n,m}? | 否 | 至少匹配 n 次,但不超过 m 次。 |
{MACRO} | - | 在当前正则表达式中包含正则表达式 MACRO。 |
序列 | 描述 |
---|---|
^ | 字符串开头或换行符之后。 |
$ | 字符串结尾或换行符之前。 |
序列 | 描述 |
---|---|
(...) | 对正则表达式进行分组以覆盖默认运算符优先级。 |
(?r-s:pattern) |
在解释 pattern 时应用选项 r 并省略选项 s。选项可以是字符 i、s 或 x 的零个或多个。 i 表示不区分大小写。 -i 表示区分大小写。 s 更改 . 的含义以匹配任何字符。 -s 更改 . 的含义以匹配除 \n 之外的任何字符。 x 忽略模式中的注释和空格。空格被忽略,除非它被反斜杠转义,包含在 ""s 中,或出现在字符范围内。 这些选项可以通过将位的组合传递给词法分析器在规则级别全局应用。 |
(?# comment ) | 省略 () 内的所有内容。遇到的第一个 ) 字符结束模式。注释不能包含 ) 字符。注释可以跨行。 |