3

我在这里遇到了正则表达式中断。如何再次捕获负面的后视模式?

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

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

我该怎么做呢?

4

2 回答 2

2

只是一个快速的想法:

preg_replace ('#^((http[s]{0,1}://)|([a-z]+://))#i', '$2', $uri);
于 2011-04-01T10:50:35.613 回答
1
preg_replace('#^((?:.(?<!http))+://)#i', '', $uri);
于 2011-04-01T12:12:14.693 回答