Regex: удалить схему, если это не http (s).(захватить негативную картину за кадром) - PullRequest
3 голосов
/ 01 апреля 2011

У меня здесь отключение регулярных выражений.Как мне снова зафиксировать шаблон с отрицательным внешним видом?

Я пытаюсь удалить схему (включая ://) URI, если это не http / https.Я на полпути (или, как мне показалось, шаблон ниже даже не компилируется), но я забыл, как на самом деле зафиксировать негативный шаблон:

preg_replace( '~^(?<!https?)://~', '', $uri );

Какя могу сделать это снова?

Ответы [ 2 ]

2 голосов
/ 01 апреля 2011

Просто быстрая мысль:

preg_replace ('#^((http[s]{0,1}://)|([a-z]+://))#i', '$2', $uri);
1 голос
/ 01 апреля 2011
preg_replace('#^((?:.(?<!http))+://)#i', '', $uri);
...