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
Regex для проверки наличия несоответствующих скобок в строке?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.