0

我有一些 php 字符串,如下所示

abc-1987-mp3-songs
xyz-1999-india-mp3-songs
dec-2001-mp3-songs
ryu-2012-freemp3-songs

现在我希望将这些字符串拆分为最后找到的数值,如下所示

  abc-1987
  xyz-1999
  dec-2001
  ryu-2012

请帮助我知道可以使用哪个正则表达式来执行此操作。谢谢。

4

3 回答 3

0

使用正则表达式的explode insted 例如:-

$str="abc-1987-mp3-songs";
$f=explode("-",$str);
echo $final_result=$f[0]."-".$f[1];

或者如果你想使用 reg exp.then

<?php
    $str="abc-1987-mp3-songs";
     echo $f=preg_replace('/[^0-9]/','', $str); 
?>

上面的代码为您提供了字符串的所有数字。

于 2012-08-18T11:12:36.643 回答
0

这将匹配给定字符串中最后一次出现的数值:

([\w\d-]*-[\d]+)

这是链接:正则表达式

在此处输入图像描述

于 2012-08-18T11:15:51.087 回答
0

好的,我看了一下(确实需要一些时间来学习正则表达式 - 但同时):

$split = (preg_split('/(^.*?[0-9]+)\-?[^0-9]+/', 'foo-xyz-1999-india-mp3-songs', -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY));
echo $split[0];//<--- foo-xyz-1999, just like you wanted

将数组foo-xyz-1999作为第一个值转储,这是您需要的。如果您想知道正则表达式的每个部分在此处阅读的内容

唯一的区别是,虽然整个字符串成为自己的分隔符,但有两个分隔符(第一部分总是以一系列数字结尾,而字符串的其余部分不包含任何数字)

于 2012-08-18T11:55:00.927 回答