说我想匹配可能包含http://
,https://
或两者都不匹配的网址。当我替换它时,我希望前面有https://
,如果它在那里,但是如果它是http://
或者我想在开始时只有http://
。
我无法弄清楚如何使用preg_match表达式来解决这个问题,或者对于非PHP倾向的搜索和替换PHP函数。
答案 0 :(得分:1)
您可以使用preg_replace_callback
,然后编写一个函数来执行此操作。
答案 1 :(得分:0)
如果你想要一个正则表达式的解决方案,这样的东西应该有用。
preg_replace('|^(?:http(s)?://)?(.+)$|', 'http\\1://\\2', $url);
虽然我可能会使用parse_url并将其重新组合在一起。