跳至内容

Raku 编程/正则表达式

来自维基教科书,开放的书籍,面向开放的世界

正则表达式

[编辑 | 编辑源代码]

正则表达式是一种用于指定和搜索字符串中的模式的工具,以及其他用途。正则表达式是 Perl 中一个流行且强大的部分,尽管它们在该语言的后续版本中逐渐增长和扩展,以一种难以跟踪和实现的方式。

随着更多运算符和元字符被添加到引擎中,Perl 的正则表达式变得越来越难用和理解。人们决定 Raku 将打破这种语法,并从头开始重写正则表达式,使其更灵活,并且更好地集成到语言中。在 Raku 中,它们被称为 **regexes**,并且已经变得更加强大。

Raku 以两种方式支持 regexes:它有一个支持 Perl 风格正则表达式的传统模式,还有一个支持新式 regexes 的正常模式。

基本量词

[编辑 | 编辑源代码]

Regexes 描述了可以在字符串数据中搜索并对其进行操作的模式。要搜索的最基本模式之一是重复模式。为了描述重复,可以使用一些量词。

操作符 含义 示例 说明
* "零个或多个" B A* 接受一个字符串,其中包含一个 'B',后跟任意数量的 'A' 字符,甚至零个。例如:BBAAAAA 等等。
+ "一个或多个" B A+ 接受一个字符串,其中包含一个 'B',后跟至少一个 'A'。示例:BAAABA,但不包括 B
? "一个或零个" B A? 匹配一个 'B',可选地后跟一个 'A'。例如:BBA
** "这么多" B A**5 匹配一个 'B',后跟恰好 5 个 'A' 字符。例如:BAAAAA
B A ** 2..5 匹配一个 'B',后跟至少两个 'A',不超过 5 个 'A'。例如:BAABAAABAAAABAAAAA
华夏公益教科书