PHP正则表达式删除字符串中的最后一个字符后的所有内容

时间:2014-10-22 15:29:22

标签: php regex

我有以下字符串的img url,我正在尝试消毒

$img_string = http://image.s5a.com/is/image/saks/0401694719016_647x329.jpg," "="">/-/http://image.s5a.com/is/image/saks/0401694719016_A1_647x329.jpg," "="">

我首先像这样爆炸字符串

$img_array = explode('/-/',  $img_string);

但我找不到正则表达式来删除图片网址中最后一个字符后的所有内容。

e.g。无论img url是以.png还是.jpg或.jpeg结尾,我都需要清理它。 我的预期输出是

http://image.s5a.com/is/image/saks/0401694719016_647x329.jpg

而不是

http://image.s5a.com/is/image/saks/0401694719016_647x329.jpg," "="">

所以我的问题是,有人可以帮助我获得所需的正则表达式吗?

由于

4 个答案:

答案 0 :(得分:1)

(?<=jpg|png|jpeg).*

试试这个。empty string。见。演示。

http://regex101.com/r/rQ6mK9/44

答案 1 :(得分:0)

您可以使用此正则表达式preg_match

[^,]+

RegEx Demo

另外,您也可以将此正则表达式用于preg_match

^.+?\.(png|jpe?g)

答案 2 :(得分:0)

应该使用此功能,删除URL中的逗号:

if (preg_match_all("/(.*?),/is", $img_string, $matches)) {
  $url = $matches[1][0];
  echo $url;
}
在此处测试

修改http://ideone.com/pq1WzA

答案 3 :(得分:0)

删除第一个逗号之后的所有内容:

$result = preg_replace('@[,].*$@ui', '', $img_string);