Raku 程式設計/正則表示式
外觀
正則表示式是一種用於指定和搜尋字串中的模式的工具,以及其他用途。正則表示式是 Perl 中一個流行且強大的部分,儘管它們在該語言的後續版本中逐漸增長和擴充套件,以一種難以跟蹤和實現的方式。
隨著更多運算子和元字元被新增到引擎中,Perl 的正則表示式變得越來越難用和理解。人們決定 Raku 將打破這種語法,並從頭開始重寫正則表示式,使其更靈活,並且更好地整合到語言中。在 Raku 中,它們被稱為 **regexes**,並且已經變得更加強大。
Raku 以兩種方式支援 regexes:它有一個支援 Perl 風格正則表示式的傳統模式,還有一個支援新式 regexes 的正常模式。
Regexes 描述了可以在字串資料中搜索並對其進行操作的模式。要搜尋的最基本模式之一是重複模式。為了描述重複,可以使用一些量詞。
| 運算子 | 含義 | 示例 | 說明 |
|---|---|---|---|
* |
"零個或多個" | B A* |
接受一個字串,其中包含一個 'B',後跟任意數量的 'A' 字元,甚至零個。例如:B、BAAAAA 等等。 |
+ |
"一個或多個" | B A+ |
接受一個字串,其中包含一個 'B',後跟至少一個 'A'。示例:BAAA 或 BA,但不包括 B |
? |
"一個或零個" | B A? |
匹配一個 'B',可選地後跟一個 'A'。例如:B 或 BA |
** |
"這麼多" | B A**5 |
匹配一個 'B',後跟恰好 5 個 'A' 字元。例如:BAAAAA |
B A ** 2..5 |
匹配一個 'B',後跟至少兩個 'A',不超過 5 個 'A'。例如:BAA、BAAA、BAAAA、BAAAAA |