查找正则表达式和字符消耗



根据Raku's look - around断言的文档,我将正则表达式/ <?[abc]> <alpha> /读为"从左边开始,匹配但不消耗a,bc中的一个字符,一旦找到匹配,匹配并消耗一个字母字符"。

因此,这个输出是有意义的:

'abc' ~~ / <?[abc]> <alpha> /     # OUTPUT: «「a」␤ alpha => 「a」»

尽管正则表达式有两个单字符项,但其中一个不捕获,因此我们捕获的总长度只有一个字符。

但下一个表达让我困惑:

'abc' ~~ / <?[abcs]> <alpha> /     # OUTPUT: «「ab」␤ alpha => 「b」»

现在,我们的总捕获是两个字符长,其中一个没有被<alpha>捕获。那么环顾四周到底有没有捕捉到什么呢?还是我误解了周围的工作方式?

<?[ ]><![ ]>似乎不支持某些反斜杠字符类。nsdw结果相似。

当添加nsdw

时,<?[abcs]>的行为与<[abcs]>相同。

t,h,v,c[NAME]x61似乎工作正常。

最新更新