我有一些 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
请帮助我知道可以使用哪个正则表达式来执行此操作。谢谢。
使用正则表达式的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);
?>
上面的代码为您提供了字符串的所有数字。
好的,我看了一下(确实需要一些时间来学习正则表达式 - 但同时):
$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
作为第一个值转储,这是您需要的。如果您想知道正则表达式的每个部分在此处阅读的内容
唯一的区别是,虽然整个字符串成为自己的分隔符,但有两个分隔符(第一部分总是以一系列数字结尾,而字符串的其余部分不包含任何数字)