Sim*_*ine 10
作为链接到州的文档,
Run Code Online (Sandbox Code Playgroud)m/abc/; # a regex that is immediately matched against $_ rx/abc/; # a Regex object /abc/; # a Regex object[...]
m/ /和/ /运营商之间的差异示例:Run Code Online (Sandbox Code Playgroud)my $match; $_ = "abc"; $match = m/.+/; say $match; say $match.^name; # OUTPUT: «?abc??Match?» $match = /.+/; say $match; say $match.^name; # OUTPUT: «/.+/?Regex?»
因此/.../返回一个Regex可以作为值传递的对象,并用于稍后和多次匹配,并m/.../返回一个Match立即执行匹配的对象.当您打印Match对象时,您将获得匹配的结果,并且当您打印Regex对象时,您将获得正则表达式的文本表示.m/.../在Perl 6中使用允许您访问隐式Match对象,$/:
匹配结果存储在
$/变量中,也从匹配中返回.Match如果匹配成功,结果是类型; 否则就是Nil.
这种区别是相当于Python的re.compile主场迎战re.match/re.search以及类似的区分,Perl 5中存在,您可以存储并重新使用正则表达式用qr/.../与m/.../和/.../用于直接匹配.正如@raiph指出的那样,并非所有出现m/.../并/.../导致直接匹配.相反,即使没有明确要求,Perl 5也会预编译文字(静态)正则表达式.(据推测,Perl 6也会执行此优化.)
| 归档时间: |
|
| 查看次数: |
379 次 |
| 最近记录: |