考虑以下Perl风味的??(我想不是?正则表达式来测试字符串是否为回文:
^((.)(?1)2|.?)$
在这里试试。
以下
my regex palindrome {
^((.)(?1)2|.?)$
}
say "$word is a palindrome"
if $word ~~ /<palindrome>/
&& $word.chars > 1;
给出错误
===SORRY!===
Quantifier quantifies nothing
at /home/cat/projects/perl6/code/misc/words.pl6:6
------> ^((.)(?⏏1)2|.?)$
Unrecognized backslash sequence (did you mean $1?)
at /home/cat/projects/perl6/code/misc/words.pl6:6
------> ^((.)(?1)2⏏|.?)$
我有(Python)正则表达式的工作知识,当它说"量词不量化任何东西"时,我明白它的意思,但我不明白为什么当我要求递归而不是量化时它会这么说。
我对Perl没有足够的了解,不知道为什么它不喜欢反斜杠(另一个错误)。
我确实尝试弄乱语法并四处搜索,但就我和互联网而言,这个正则表达式有效,摆弄它会产生我没有得到的各种其他错误。
我做错了什么?
一种方法是这样的:
my regex palindrome { (.) <~~> $0 || .? }
say "aba" ~~ /^<palindrome>$/;