2014-01-21 66 views
1

我有这个字符串:PHP正则表达式 - 从字符中删除为字符?

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/向后移动到下一个/ ??

有没有人有这个问题的解决方案?

+3

你知道你想要删除的字符串始终在5号开始,并在7号结束。应该花不到10秒钟的时间从那里拿出一个解决方案,甚至不用打扰正则表达式 – Dave

+1

你必须给出更多的例子,说明'c22.0.100.100'可以如何改变 –

+0

我有一个解决方案。但是,这是基本的,尝试一些正则表达式(如果你需要它们,'explode()'应该就足够了),并回来你写的代码 – kero

回答

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/
  • ''与不兴

OUTPUT:

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 
+0

谢谢@Gavin!像一个魅力工作:-) –

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

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

你最终的目标是什么?它有什么作用,这是什么需要做的,为什么呢,这些都是拼图的所有作品,将帮助人们回答:)

+0

谢谢你本。 “/ t1 /”不总是字符串的一部分:-( –

+0

'preg_replace('〜[^ /] +/p100x100 /〜','',$ string);'我没有' t试用过了,但它可能会删除这两个目录,它可能需要一些调整 –

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

0

如何:

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