Как этот шаблон PCRE обнаруживает палиндромы?

Этот вопрос представляет собой обучающую демонстрацию использования опережающего просмотра, вложенной ссылки и условных операторов в шаблоне PCRE для сопоставления ВСЕХ палиндромов, включая те, которые могут не соответствует рекурсивному шаблону, приведенному на странице руководства PCRE.

Изучите этот шаблон PCRE во фрагменте PHP:

$palindrome = '/(?x)
^
  (?:
      (.) (?=
              .*
              (
                \1
                (?(2) \2 | )
              )
              $
          )
  )*
  .?
  \2?
$


/';

Этот шаблон, похоже, обнаруживает палиндромы,

20
задан Community 23 May 2017 в 12:10
поделиться