首页 > 解决方案 > Lookaround 术语中的“无” [RAKU]

问题描述

我正在阅读有关“用于嵌套结构的波浪号”的正则表达式文档。

关于使用的副解释<?>是:

这里<?>成功匹配空字符串。

我以为我可以使用它来<?[]>代替它,但它没有这样做!

举个例子:

say so "" ~~ / <?> /;
say so "test" ~~ / <?> /;

say so "" ~~ / <?[]> /;
say so "test" ~~ / <?[]> /;

响应:

True
True

False
False

有人可以给我一个解释吗?

标签: regex-lookaroundsraku

解决方案


语法<?[]>意味着与空字符类匹配的前瞻。观察空字符类也永远不会匹配:

say "x" ~~ /<[]>/   # Nil

字符类指定一组可以匹配的字符。空字符类意味着一组空字符,因此不可能匹配任何内容。


推荐阅读