0

我正在尝试在我的 PHP 代码(preg_replace)中执行正则表达式操作。现在我正在使用:

|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i

这与http://google.com等 URL 相匹配……但现在我猜想如果我要匹配的 URL 也是这样的呢?

http:\/\/asd.domain.com\/path\/of\/url\/something.else

我尝试过使用 2x 反斜杠和 4x 反斜杠,但它似乎不起作用。

有什么建议吗?

提前致谢。

4

1 回答 1

0

好吧,如果您只是想匹配字符串,请添加一些反斜杠:

^http(s)?:\\?/\\?/[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(\\?/.*)?$

我使用了一个?量词,以便它仍然匹配它之前可以匹配的 URL。由于\是转义字符,因此您需要其中的两个,第一个转义第二个的转义属性\

请参阅演示(由于正则表达式测试器的工作方式,我只在那里转义了正斜杠——分隔符是斜杠)。

于 2013-07-07T16:16:04.533 回答