只是为了它,我试图匹配 junction用 m//
对抗正则表达式operator在 raku(在该页面上搜索 Explicit topic match
)。
在 perl6
回复:
> any('a','b') ~~ m/./
False
之后,不管我怎么打m//
我收到一个不可变的匹配投诉:> 'x' ~~ m/./
Cannot modify an immutable Match (「a」)
in block <unit> at <unknown file> line 1
问题 这里的幕后发生了什么?
讨论
问题似乎源于
$/
special variable设置在交界处any(「a」, 「b」)
路口匹配后,好像是「a」
在引起投诉的路口。只要我做任何改变
$/
到别的东西,功能恢复:> $/=Any
(Any)
> 'x' ~~ m/./
「x」
或者> 'x' ~~ /./
「x」
> 'x' ~~ m/./
「x」
(所以先与 //
匹配,以便更改 $/
,然后与 m//
匹配)。澄清
我不想“实现”超出问题要求的任何东西:我只是想了解这种行为。
编辑
出于交叉引用的目的,这现在也是
rakudo
github issue ,正如@jjmerelo 所建议的那样。
最佳答案
匹配是否应该返回的附带问题False
或 True
我认为在 the comment 中已解决来自@raiph。
另一方面,接收immutable Match
的主要问题错误 was ,似乎是一个错误,带有 a commit至少在我的系统上修复了它。
所以问题是(根据提交消息)正则表达式匹配对象不应该是连接。
关于regex - 匹配一个连接点使得 Match 不可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64650122/