11

文字列内の任意の数値の最初の出現位置を見つけるためのアルゴリズムを誰かが手伝ってくれますか?

Web で見つけたコードが機能しません。

function my_offset($text){
    preg_match('/^[^\-]*-\D*/', $text, $m);
    return strlen($m[0]);
}
echo my_offset('[HorribleSubs] Bleach - 311 [720p].mkv');
4

5 に答える 5

20
function my_offset($text) {
    preg_match('/\d/', $text, $m, PREG_OFFSET_CAPTURE);
    if (sizeof($m))
        return $m[0][1]; // 24 in your example

    // return anything you need for the case when there's no numbers in the string
    return strlen($text);
}
于 2011-09-21T06:53:33.953 に答える
15
function my_ofset($text){
    preg_match('/^\D*(?=\d)/', $text, $m);
    return isset($m[0]) ? strlen($m[0]) : false;
}

これでうまくいくはずです。元のコード-では最初の数字の前に a が必要でしたが、それが問題だったのでしょうか?

于 2011-09-21T06:51:09.930 に答える