Простое регулярное выражение совпадает с онлайн-отладчиками, но не при запуске PHP 7.3 - PullRequest
0 голосов
/ 20 октября 2019

мое регулярное выражение работает на Debuggex и показывает совпадение, но при запуске в PHP оно не совпадает. Это регулярное выражение не сделано мной, потому что я просто не совместим с регулярным выражением, и поэтому я не могу отладить его сейчас (уже 2 часа).

Пожалуйста, помогите!

Выражение: ^0+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+0+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+0+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+[0\-1]+0

Соответствующая строка: 0111111101111011011110000

Демонстрация Debuggex - соответствует.

Версия PHP - 7.3. Пробовал как в Windows, так и в Linux PHP.

Выражение было написано для PHP 5.6. Я знаю, что в PHP 7 и более поздних версиях они обновили движок PCRE, поэтому, вероятно, причина того, что мое регулярное выражение не работает.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 21 октября 2019

Я "исправил" свою проблему, увеличив pcre.backtrack_limit в php.ini.

Я знаю, что это не исправляет плохо написанное регулярное выражение, это больше похоже на использование клейкой ленты для прикрепления сломанной ножки стула,Но в настоящее время у меня нет времени переписывать регулярное выражение, имея в виду, что регулярные выражения - не мое дело.

Спасибо всем за ваши идеи и намерения помочь мне.

...