考虑以下Perl风味? (我想不是吗?)regex to test if a string is a palindrome:
^((.)(?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)正则表达式有一定的了解,当我说“Quantifier无量化”时,我明白了它的含义,但是当我提出要求时,我没有得到为什么对于递归,而不是量化。
我没有足够的Perl知识知道为什么它不喜欢反斜杠(另一个错误)。
我做了尝试搞乱语法和搜索,但就我和互联网而言,这个正则表达式工作,并摆弄它产生各种其他错误,我没有得到
我做错了什么?
答案 0 :(得分:6)
这样做的一种方法是:
my regex palindrome { (.) <~~> $0 || .? }
say "aba" ~~ /^<palindrome>$/;