正则表达式:删除方案,除非它是http(s)。 (捕捉负面的背后图案)

时间:2011-04-01 10:43:12

标签: php regex capture negative-lookbehind

我正在这里进行正则表达式停电。如何再次捕获负面的lookbehind模式?

我正在尝试删除uri的方案(包括://),除非它是http / https。我已经到了一半(或者我以为我是,下面的模式甚至没有编译),但我忘了如何实际捕获负面模式:

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

我怎么能这样做呢?

2 个答案:

答案 0 :(得分:2)

快速思考:

preg_replace ('#^((http[s]{0,1}://)|([a-z]+://))#i', '$2', $uri);

答案 1 :(得分:1)

preg_replace('#^((?:.(?<!http))+://)#i', '', $uri);