以下のような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
これを行うためにどの正規表現を使用できるか教えてください。ありがとう。
わかりました、私は見てみました(正規表現を学ぶのに少し時間がかかりますが、その間):
$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
必要なものである最初の値として配列をダンプします。正規表現のすべての部分が何をしているのか知りたい場合は、ここで読んでください
唯一の違いは、文字列全体が独自の区切り文字になりますが、2つの区切り文字があることです(最初の部分は常に一連の数字で終わり、残りの文字列はそれ以上数字を含みません)
たとえば、正規表現の代わりにexplodeを使用します。-
$str="abc-1987-mp3-songs";
$f=explode("-",$str);
echo $final_result=$f[0]."-".$f[1];
または、regexp.thenを使用する場合
<?php
$str="abc-1987-mp3-songs";
echo $f=preg_replace('/[^0-9]/','', $str);
?>
上記のコードは、文字列のすべての数字を示しています。