我有一些像下面的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
请帮助我使用哪个正则表达式来执行此操作。感谢。
答案 0 :(得分:0)
使用explode而不是正则表达式 例如: -
$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);
?>
上面的代码为您提供字符串的所有数字。
答案 1 :(得分:0)
答案 2 :(得分: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
为第一个值的数组,这正是您所需要的。如果你想知道正则表达式的每个部分read it here
唯一的区别是,尽管整个字符串成为它自己的分隔符,但有两个分隔符(第一部分,总是以一系列数字结尾,其余字符串,不包含任何数字)