对不起,由于我的问题,我刚发现了一个新问题: 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()
但它不起作用。
答案 0 :(得分:11)
可以使用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
答案 1 :(得分: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
答案 2 :(得分:1)
试试这个,它可能不可行,但解决你的问题
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,');
答案 3 :(得分:1)
$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);
答案 4 :(得分:1)
试试这个
$string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1';
$wordCounts = array_count_values(str_word_count($string,1));
echo $mCount = (isset($wordCounts['M-'])) ? $wordCounts['M'] : 0;
但是这里有一件事你可以传递'M-'或'M'而不是'M-1'这是你需要的一些解决方法。 Beacuse str_word_count匹配使用的确切字数。
答案 5 :(得分:0)
检查一下,
$string = '120201M, 121212M-1, 21121212M, 232323M-2, 32323K, 323232K-1';
$arrString = explode($string,'M');
echo $stringCount = count($arrString);