3

ここで正規表現がブラックアウトしています。ネガティブなバックビハインドパターンを再度キャプチャするにはどうすればよいですか?

://http / httpsでない限り、URIのスキーム(を含む)を削除しようとしています。途中ですが(または、下のパターンはコンパイルされていないと思っていました)、実際にネガティブパターンをキャプチャする方法を忘れました。

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 に答える