Preg_replace 和正则表达式
Preg_replace and regex
我有这样的字符串:
$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(/(*)(\/*)/, ,$imgs)
由于您添加了 regex 标签。
您可以像下面那样使用 positive lookahead
以及 ^
锚点。
正则表达式: ^.*?(?=\|)
/^([^|]*)/
这匹配从字符串开头到第一个 |
个字符的任意数量的字符。
为什么要使用正则表达式?你可以这样做:
substr($imgs, 0, strpos($imgs, '|'));
当您有这样的输入值时:
$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];
虽然您可以使用正则表达式,但在这种情况下没有特别的理由,而且它有混淆您正在做的事情的风险。
使用
$upload = explode('|', $imgs);
echo $upload[0];
希望对您有所帮助:)
我有这样的字符串:
$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(/(*)(\/*)/, ,$imgs)
由于您添加了 regex 标签。
您可以像下面那样使用 positive lookahead
以及 ^
锚点。
正则表达式: ^.*?(?=\|)
/^([^|]*)/
这匹配从字符串开头到第一个 |
个字符的任意数量的字符。
为什么要使用正则表达式?你可以这样做:
substr($imgs, 0, strpos($imgs, '|'));
当您有这样的输入值时:
$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];
虽然您可以使用正则表达式,但在这种情况下没有特别的理由,而且它有混淆您正在做的事情的风险。
使用
$upload = explode('|', $imgs);
echo $upload[0];
希望对您有所帮助:)