match - perl6 是否可以在匹配中使用连接点?

标签 match raku junction

是否可以使用连接来匹配连接中的任何值?我想匹配数组中的任何值。什么是正确的方法呢?

lisprog$ perl6
To exit type 'exit' or '^D'
> my @a=<a b c>
[a b c]
> any(@a)
any(a, b, c)
> my $x=any(@a)
any(a, b, c)
> my $y = "a 1"
a 1
> say $y ~~ m/ $x /
False
> say $y ~~ m/ "$x" /
False
> my $x = any(@a).Str
any("a", "b", "c")
> say $y ~~ m/ $x /
False
> say $y ~~ m/ || $x /
False
> say $y ~~ m/ || @a /
「a」
> 

谢谢 !!

最佳答案

结点不打算插入到正则表达式中。它们旨在用于普通的 Perl 6 表达式,特别是与比较运算符(例如 eq ):

my @a = <x y z>;
say    "y" eq any(@a);  # any(False, True, False)
say so "y" eq any(@a);  # True

要匹配正则表达式中数组的任何值,只需在正则表达式中写入数组变量的名称(以 @ 开头)。默认情况下,这被解释为 |交替(“最长匹配”),但您也可以将其指定为 ||交替(“第一场比赛”):

my @a = <foo bar barkeep>;
say "barkeeper" ~~ / @a /;     # 「barkeep」
say "barkeeper" ~~ / || @a /;  # 「bar」

关于match - perl6 是否可以在匹配中使用连接点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457242/

相关文章:

syntax-highlighting - vim 匹配删除其他匹配

javascript - js,查找/匹配/搜索元素是否按数据名称存储数据

concurrency - Raku 提供了哪些并发机制以及如何对其进行评估?

raku - 在Perl 6中查找数组中的元素索引

raku - 在 Perl 6 中使用正则表达式和 .contains 进行过滤

perl - 如何在不遵循连接点的情况下删除 Windows 目录?

mysql - 无法进行连接和分组

c# - Java 中的正则表达式匹配

c# - 如何使用标准用户检索 Junction 或 Symlink 的目标

r - 通过其他数据帧列中最接近的值匹配数据帧中的列