1

私はこのコードを持っています:

23561623:page[1].12 
6461620:page[3].7 
43631619:page[1].1 
265461620:page[6].2 
21461621:page[1].10 

12,7,1,2,10 などの最後の整数を取得する必要があります。

前もってありがとう、ラッキー

4

2 に答える 2

7
$str = '23561623:page[1].12';
$parts = explode('.', $str);
echo $parts[1];

また、使用する必要がpreg_matchある場合(ここでは不要ですが):

$str = '23561623:page[1].12';
$matches = array();

if (preg_match('/\.(\d+)$/', $str, $matches)) {
    echo $matches[1];
}
于 2012-08-22T21:02:16.877 に答える
0

他の答えは、常に期間があることを前提としているようです。あるかもしれませんが、以下はそのような仮定をしていません。

そのような文字列のブロックが 1 つある場合は、次の正規表現コードを実行できます。

if (preg_match_all('/(\d+)\s*$/m', $str, $matches)) {
    // $matches[1] contains all the integers
}

これは、最後の数字のセット ( (\d+)) と、オプションでその後に続く空白 ( \s*) を行末 ( ) まで一致させ$ます。/m修飾子は、$件名の終わりではなく、行末として動作します。

于 2012-08-22T23:12:57.067 に答える