is Method
正则表达式是一种描述字符串集的模式。找出给定字符串是否在该集合中的过程称为匹配。这种匹配的结果是一个 Match
对象,如果字符串在集合中,则在布尔上下文中计算为 True
。
正则表达式通常由正则表达式字面量构造
rx/ ^ab /; # describes all strings starting with 'ab'/ ^ ab /; # samerx/ \d ** 2/; # describes all strings containing at least two digits
可以使用 regex
声明符定义一个命名正则表达式,后跟大括号中的定义。由于任何正则表达式都 Callable
内省需要通过 &
-sigil 引用。
my ;say .^name; # OUTPUT: «Regex»
要将字符串与正则表达式进行匹配,可以使用智能匹配运算符
my = 'abc' ~~ rx/ ^ab /;say .Bool; # OUTPUT: «True»say .orig; # OUTPUT: «abc»say .Str; # OUTPUT: «ab»say .from; # OUTPUT: «0»say .to; # OUTPUT: «2»
或者可以在布尔上下文中计算正则表达式,在这种情况下它与 $_
变量匹配
= 'abc';if / ^ab /else
方法§
方法 ACCEPTS§
multi method ACCEPTS(Regex: Mu --> Match)multi method ACCEPTS(Regex: @)multi method ACCEPTS(Regex: %)
将正则表达式与传入的参数进行匹配。如果参数是 Positional
,它将返回任何列表项的第一个成功匹配。如果参数是 Associative
,它将返回任何键的第一个成功匹配。否则,它将把参数解释为 Str
并与之匹配。
对于位置和关联匹配,Nil
在失败时返回。
方法 Bool§
multi method Bool(Regex: --> Bool)
与调用者的 $_ 变量匹配,并为匹配返回 True
或为不匹配返回 False
。