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

わかりました、私は見てみました(正規表現を学ぶのに少し時間がかかりますが、その間):

$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つの区切り文字があることです(最初の部分は常に一連の数字で終わり、残りの文字列はそれ以上数字を含みません)

于 2012-08-18T11:55:00.927 に答える
0

たとえば、正規表現の代わりに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); 
?>

上記のコードは、文字列のすべての数字を示しています。

于 2012-08-18T11:12:36.643 に答える
0

これは、指定された文字列から最後に出現した数値と一致します。

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

これはリンクです:正規表現

ここに画像の説明を入力してください

于 2012-08-18T11:15:51.087 に答える