perl6 – 如何匹配Perl 6正则表达式中相同数量的不同原子?
发布时间:2020-12-16 06:09:56 所属栏目:大数据 来源:网络整理
导读:应该很简单,但我无法应付它. 我想匹配与bs完全相同的数量.所以,以下 my $input = 'aaabbbb';$input ~~ m:ex/ ... /; 应该产生: aaabbbaabbab UPD:以下变体不起作用,可能是因为:@smls’s answer中提到的:ex bug(但更可能是因为我犯了一些错误?): my $in
应该很简单,但我无法应付它.
我想匹配与bs完全相同的数量.所以,以下 my $input = 'aaabbbb'; $input ~~ m:ex/ ... /; 应该产生: aaabbb aabb ab UPD:以下变体不起作用,可能是因为:@smls’s answer中提到的:ex bug(但更可能是因为我犯了一些错误?): > my $input = "aaabbbb"; > .put for $input ~~ m:ex/ (a) * (b) * <?{ +$0 == +$1 }> /; Nil > .put for $input ~~ m:ex/ (a) + (b) + <?{+$0 == +$1}> /; Nil 这个,有:ov和?,有效: > my $input = "aaabbbb"; > .put for $input ~~ m:ov/ (a)+ (b)+? <?{+$0 == +$1}> /; aaabbb aabb ab UPD2:以下解决方案适用于:ex,但我必须在没有<?...>的情况下执行此操作.断言. > $input = 'aaabbbb' > $input ~~ m:ex/ (a) + (b) + { put $/ if +$0 == +$1 } /; aaabbb aabb ab 解决方法my $input = "aaabbbb"; say .Str for $input ~~ m:ov/ (a)+ b ** {+$0} /; 输出: aaabbb aabb ab 它应该用于:ex而不是:ov,但是Rakudo bug #130711目前可以防止这种情况. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |