PHP RegEx - 从char删除到char?

时间:2014-01-21 15:03:07

标签: php regex string preg-replace

我有这个字符串:

http://scontent-b.xx.fbcdn.net/hphotos-prn2/t1/c22.0.100.100/p100x100/1489204_568091786618712_2075358603_n.jpg

我想删除字符串的以下部分:

c22.0.100.100/p100x100/

...但是以下部分字符串是动态的(更改):

c22.0.100.100

我认为有可能在某种程度上将PHP preg_函数与正则表达式结合使用? 示例:/p100x100/向后移除到下一个/ ??

有没有人能解决这个问题?

4 个答案:

答案 0 :(得分:1)

CODE:

  $a = 'http://scontent-b.xx.fbcdn.net/hphotos-prn2/t1/c22.0.100.100/p100x100/1489204_568091786618712_2075358603_n.jpg';;
  $b = preg_replace("/[^\/]*\/p100x100\//",'',$a);
  echo 'A: '.$a."\n";
  echo 'B: '.$b."\n";

这个正则表达式[^\/]*\/p100x100\/取代了......

  • [^\/]*尽可能多的非'/'
  • \/p100x100\/后跟/ p100x100 /
  • ''没有任何内容

输出:

A: http://scontent-b.xx.fbcdn.net/hphotos-prn2/t1/c22.0.100.100/p100x100/1489204_568091786618712_2075358603_n.jpg
B: http://scontent-b.xx.fbcdn.net/hphotos-prn2/t1/1489204_568091786618712_2075358603_n.jpg

答案 1 :(得分:0)

preg_replace('¦/t1/.*/p100x100/¦', '/t1/', $string)

虽然使用。*可能会引发一些有趣的问题。*但是没有关于可替换字符串可能是什么的任何其他信息它是最好的。

你最终的目标是什么?它做了什么,它需要做什么,以及为什么,这些都是帮助人们回答的难题的一部分:)

答案 2 :(得分:0)

这样做是为了删除c22.0.100.100/p100x100/

<?php
$str="http://scontent-b.xx.fbcdn.net/hphotos-prn2/t1/c22.0.100.100/p100x100/1489204_568091786618712_2075358603_n.jpg";

    echo preg_replace('~(?<=t1).*(?=\/)~',"",$str);

Demo

答案 3 :(得分:0)

怎么样:

preg_replace('~/c\d+(?:\.\d+){3}/p100x100\b~', '', $str)