preg_replace() Only Specific Part Of String

后端 未结 3 2052
遇见更好的自我
遇见更好的自我 2020-12-18 04:20

I always have trouble with regex, I basically have a url, for example:

http://somedomain.com/something_here/bla/bla/bla/bla.jpg

What I need is a

3条回答
  •  庸人自扰
    2020-12-18 04:49

    The following code is based on the description you provided:

    $url = 'http://somedomain.com/something_here/bla/bla/bla/bla.jpg';
    $output = preg_replace('#^(https?://[^/]+/)[^/]+/(.*)$#', '$1$2', $url);
    echo $output; // http://somedomain.com/bla/bla/bla/bla.jpg
    

    Explanation:

    • ^ : match begin of line
    • ( : start matching group 1
      • https?:// : match http or https protocol
      • [^/]+ : match anything except / one or more times
      • / : match /
    • ) : end matching group 1
    • [^/]+ : match anything except / one or more times -/ : match /
    • ( : start matching group 2
      • .* : match anything zero or more times (greedy)
    • ) : end matching group 2
    • $ : match end of line

提交回复
热议问题