13

23の代わりに1どうすれば入手でき$lastnum1ますか?

$text = "1 out of 23";
$lastnum1 = $this->getEval(eregi_replace("[^* out of]", '', $text));
4

6 に答える 6

28

あなたができること:

$text = "1 out of 23";
if(preg_match_all('/\d+/', $text, $numbers))
    $lastnum = end($numbers[0]);
于 2012-09-25T19:11:26.663 に答える
3
$text = "1 out of 23";
$ex = explode(' ',$text);
$last = end($ex);

そして、最後が数字であることを確認したい場合

if (is_numeric(end($ex))) {
    $last = end($ex);
} 
于 2012-09-25T19:10:53.343 に答える
2

それを行う別の方法:

$text = "1 out of 23";
preg_match('/(\d+)\D*$/', $text, $m);
$lastnum = $m[1];

これは、数字以外の数字が続く場合でも、文字列の最後の数字と一致します。

于 2012-09-28T11:38:34.720 に答える
1

preg_match値をに抽出するために使用します$matches

preg_match("/([0-9]+) out of ([0-9]+)/", $text, $matches);
于 2012-09-25T19:11:35.173 に答える
1
$text = '1 out of 23';
preg_match('/\d+ out of (\d+)/', $text, $matches);
$lastnum1 = $matches[1];
于 2012-09-25T19:11:55.220 に答える
1

フォーマットが同じ場合は、文字列を分解して最後の文字列を変換してみませんか?

<?php
$text = "1 out of 23";
$words = explode(" ",$text);
$lastnum = (int)array_pop($words);
于 2012-09-25T19:12:12.677 に答える