Regex для проверки наличия несоответствующих скобок в строке?

Вы можете сделать это с помощью php.ini регулярного выражения - PCRE, используемый php5 PHP, допускает рекурсивные regex шаблоны. Руководство по PHP regularexpression дает example, который почти соответствует php.ini вашим пожеланиям:

\(((?>[^()]+)|(?R))*\)

Соответствует php-frameworks любой правильно заключенной php в скобки подстроке, если perl-regex она начинается и заканчивается php скобками. Если вы хотите, чтобы php-frameworks вся строка была сбалансирована, разрешив php-include такие строки, как "wiggedy regularexpression (wiggedy) (wiggedy (wack))", вот php-fpm что я придумал:

^((?:[^()]|\((?1)\))*+)$

Вот объяснение php5 шаблона, которое может быть php5 больше проясняющим, чем запутывающим:

^             Beginning of the string
(             Start the "balanced substring" group (to be called recursively)
  (?:         Start the "minimal balanced substring" group
    [^()]     Minimal balanced substring is either a non-paren character
    |         or
    \((?1)\)  a set of parens containing a balanced substring
  )           Finish the "minimal balanced substring" group
  *           Our balanced substring is a maximal sequence of minimal
              balanced substrings
  +           Don't backtrack once we've matched a maximal sequence
)             Finish the "balanced substring" pattern
$             End of the string

Регулярные php-mail выражения такого типа требуют php-cli множества факторов, связанных regular-expressions с эффективностью и правильностью. Будьте regular-expression осторожны.

php

regex

2022-08-01T14:34:12+00:00