8

申し訳ありませんが、次の質問のために新しい問題が見つかりました: Get The Number of Sepecific String Inside String

文字列内の特定の文字の数を見つける方法を教えてください。ケースはこんな感じ。

function get_num_chars($char) {
    $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1'
}

get_num_chars(M) would return 2 合格したら合格したらget_num_chars(M-1) would return 1

試してみましたがcount_chars()、うまくいきsubstr_count()ません。

4

5 に答える 5

12

substr_count()で可能です。

適切に値を渡していないと思います。次のようにしてみてください。

$string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1';

echo substr_count($string, 'K-1'); //echo's 1

echo substr_count($string, 'K'); // echo's 2
于 2013-04-23T06:50:57.047 に答える
5

正規表現を使用した可能な解決策:

function get_num_chars($char) {
    $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1';
    return preg_match_all('/'.$char.'(?=,|$)/', $string, $m);
}

echo get_num_chars('M');    // 2
echo get_num_chars('M-1');  // 1
echo get_num_chars('M-2');  // 1
echo get_num_chars('K');    // 1
echo get_num_chars('K-1');  // 1
于 2013-04-23T07:14:04.230 に答える
0
$k_count = substr_count($string, 'K') - substr_count($string, 'K-');
$k1_count = substr_count($string, 'K-1');

また

Counting K not followed by dash次のように:

$k_count = preg_match_all('/*K(?!-)/*', $string, $out);
于 2013-04-23T07:01:46.013 に答える
0

これを試して。実現可能ではないかもしれませんが、問題に対処します。

function get_num_chars($char) {

    $string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1';
    echo substr_count($string, $char);
}

get_num_chars('M,');
get_num_chars('M-1');
get_num_chars('k,');
于 2013-04-23T06:57:59.473 に答える