这个正则表达式匹配回文字符串:
谢谢。
编辑:很抱歉我没有解释
^((.)(?1)\2|.?)$
我无法理解它是如何工作的。
什么时候递归结束,当正则表达式从递归子模式中断并转到"|.?"
部分?谢谢。
编辑:很抱歉我没有解释
\ 2
和(?1)
(?1)
- 引用第一个子模式(引用自身)
\ 2
- 回溯到第二个子模式的匹配项,即(.)
上面的示例使用PHP编写。可以匹配“abba”(没有中间的回文字符)和“abcba”- 具有中间的非对称字符
.?
可能是用于奇数长度的字符串。 - nhahtdh(?1)
和\2
是什么吗? - Alvin Wongecho 123454321 | perl -Mre=debug -ne '/^((.)(?1)\2|.?)$/x'
- ninjalj(?1)
=递归到第1组,\2
=回溯到第2组匹配 - ninjalj