加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6 – 在Rel 6中将正则表达式作为参数传递

发布时间:2020-12-16 06:21:29 所属栏目:大数据 来源:网络整理
导读:延续 this question,可能更奇怪. 我可以吗使用sub连接两个正则表达式? (当然,我明白了,如何使用正则表达式) 以下代码完全错误,但我希望它可以解释我想要做的事情: my Regex sub s12 ( $c,$v) { return / {$c} {$v} /}my regex consonant { [a .. z] -[aeio
延续 this question,可能更奇怪.

我可以吗使用sub连接两个正则表达式?
(当然,我明白了,如何使用正则表达式)

以下代码完全错误,但我希望它可以解释我想要做的事情:

my Regex sub s12 ( $c,$v) {
   return / <{$c}> <{$v}> /
}

my regex consonant { <[a .. z] -[aeiou]>  }
my regex vowel { <[aeiou]> }

my regex open_syllable { &s12( &consonant,&vowel ) }

"bac" ~~ m:g/ <open_syllable> /;
say $/; # should be 'ba'

解决方法

你写的内容基本上是正确的,但你需要稍微调整一下语法.首先,您应该像任何其他子声明您的组合功能.接下来,似乎将正则表达式插入另一个,< $r>是正确的语法,并将函数调用插入正则表达式,< {my-sub(args)}>是正确的语法. (当调用它时,不需要在sub前面添加一个&符号 – &主要用于当你想要在不调用它时引用Callable时.)结合这些小修复和你的代码工作:

sub combine(Regex $a,Regex $b --> Regex) {
    / <$a> <$b> /
}

my regex consonant { <[a .. z] -[aeiou]>  }
my regex vowel { <[aeiou]> }

my regex open_syllable { <{combine(&consonant,&vowel)}> }

"bac" ~~ m:g/ <open_syllable> /;
say ~$/; # output: ba

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读