我正在尝试在我的PHP代码(preg_replace)中执行正则表达式操作。现在我正在使用:
|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i
匹配http://google.com等网址......但现在我猜测我想要匹配的网址是什么样的呢?
http:\/\/asd.domain.com\/path\/of\/url\/something.else
我尝试过使用2x反斜杠和4x反斜杠,但它似乎不起作用。
有什么建议吗?
提前致谢。
答案 0 :(得分:0)
好吧,如果您只是想匹配字符串,请添加一些反斜杠:
^http(s)?:\\?/\\?/[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(\\?/.*)?$
我使用了?
量词,因此它仍然匹配之前可以匹配的网址。由于\
是一个转义字符,因此您需要其中两个,第一个转义第二个\
的转义属性。
请参阅demo(由于正则表达式测试程序的工作原理,我只在那里转义了正斜杠 - 分隔符是斜杠)。