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) |
在解譯模式時套用選項 r 並省略選項 s。選項可以是零個或多個字元 i、s 或 x。 i 表示不區分大小寫。 -i 表示區分大小寫。 s 會變更 . 的意義,使其比對任何字元。 -s 會變更 . 的意義,使其比對任何字元,但 \n 除外。 x 會忽略模式中的註解和空白字元。除非空白字元使用反斜線逸脫、包含在 ""s 中,或是出現在字元範圍內,否則會將其忽略。 這些選項可以透過將位元旗標的組合傳遞給詞法分析器,在規則層級全域套用。 |
(?# comment ) | 省略 () 內的所有內容。遇到的第一個 ) 字元會結束模式。註解無法包含 ) 字元。註解可以跨越多行。 |