Я не знаю, рубин. Я пытаюсь использовать следующее регулярное выражение, сгенерированное ruby (а именно http://www.a -k-r.org / abnf / , работающее на грамматике, заданной rfc1738) в php Не удается найти совпадение в php, но оно успешно совпадает в ruby. Кто-нибудь видит разницу между обработкой регулярных выражений в php и ruby, которая может объяснить это несоответствие?
http:\/\/(?:(?:(?:(?:[0-9a-z]|[0-9a-z](?:[\x2d0-9a-z]?)*[0-9a-z])\x2e)?)*(?:[a-z]|[a-z](?:[\x2d0-9a-z]?)*[0-9a-z])|\d+\x2e\d+\x2e\d+\x2e\d+)(?::\d+)?(?:\/(?:(?:[!\x24'-\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*(?:(?:\/(?:(?:[!\x24'-\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*)?)*(?:\x3f(?:(?:[!\x24'-\x2e0-9_a-z]|%[0-9a-f][0-9a-f]|[&:;=@])?)*)?)?/i
Так как вы все любите , вы так много тестируете, как насчет альтернативного решения.
Учитывая ABNF в rfc, я хочу способ (в php) проверить, есть ли в грамматике произвольная строка.
APG не удается скомпилировать в 64-битной системе,
VTC не F ree,
и я не нашел других подобных инструментов. Я также предпочел бы не использовать регулярные выражения, но это самый близкий к моему успеху.