PHP Conference Japan 2024

Parle 模式匹配

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退格鍵。
\eESC 字元,\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_]

Unicode 字元類別

Unicode 字元類別
序列描述
\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 ) 省略 () 內的所有內容。遇到的第一個 ) 字元會結束模式。註解無法包含 ) 字元。註解可以跨越多行。

新增註解

使用者貢獻的註解

此頁面沒有使用者貢獻的註解。
To Top