Preg_replace和正则表达式

时间:2016-03-23 18:58:33

标签: php regex preg-replace

我有一个这样的字符串:

$imgs = "uploads/images/adsense.png|uploads/images/tree-7835_960_720.jpg|uploads/images/way-427984_960_720.jpg|uploads/images/friendship-1081843_960_720.jpg|uploads/images/pinky-swear-329329_960_720.jpg"

我只想要引用第一张图片的部分:

uploads/imagens/adsense.png

如何使用正则表达式在第一个|之前过滤内容?

$image = preg_replace(/(*)(\/*)/, $1 ,$imgs)

5 个答案:

答案 0 :(得分:3)

为什么要使用正则表达式?你可以这么做:

substr($imgs, 0, strpos($imgs, '|'));

答案 1 :(得分:2)

如果您有这样的输入值:

$imgs = "uploads/images/adsense.png|uploads/images/tree-7835_960_720.jpg|uploads/images/way-427984_960_720.jpg|uploads/images/friendship-1081843_960_720.jpg|uploads/images/pinky-swear-329329_960_720.jpg"

您需要使用|作为分隔符explode

$images = explode("|", $imgs);

您想要的图像是第一个:

$images[0];

虽然你可以使用正则表达式,但在这种情况下没有特别的理由,并且它可能会混淆你正在做的事情。

答案 2 :(得分:1)

/^([^|]*)/

这匹配从字符串开头到第一个|字符的任意数量的字符。

答案 3 :(得分:0)

由于您添加了 regex 标记。

您可以使用下面的positive lookahead以及^锚点。

正则表达式: ^.*?(?=\|)

<强> Regex101 Demo

答案 4 :(得分:0)

使用

$upload = explode('|', $imgs);
echo $upload[0];

希望它有所帮助:)